【问题标题】:how to replace half space to space in persian language in sql server如何在sql server中将波斯语中的半空格替换为空格
【发布时间】:2013-11-23 03:26:04
【问题描述】:

请告诉我如何将sql server 中的半个空格替换为空格 例如:بی‌ام‌و to بی ام و

select  *
from    test
where   title   like    N'%بی‏ام‏و%'

【问题讨论】:

    标签: sql-server-2008 c#-4.0


    【解决方案1】:

    我不明白你所说的半空格是什么意思。但是你可以使用 Replace 函数来替换字符。

    【讨论】:

      【解决方案2】:

      获取半空格或隐藏字符或零宽度空格的unicode非常重要, 有时是“8204”,有时是“8203” 在下面的示例中,我们通过子字符串获取 unicode 编号然后替换它,另一件重要的事情是整理对我来说它只适用于“SQL_Latin1_General_CP1_CI_AS”

       DECLARE @UnicodeReplace NVARCHAR(5) = N'ی‌آ'
          -- check that unicode string length is 3,
          -- and prove existence of zero-width space character matching unicode 8204
          SELECT @UnicodeReplace AS String,
             LEN(@UnicodeReplace) AS Length,
                 UNICODE(SUBSTRING(@UnicodeReplace, 2, 1)) AS UnicodeValue  -- it gets you 8204
      
        set @UnicodeReplace = N'ی‌آ' collate  Persian_100_CI_AS --+ NCHAR(8204)
      -- replace and prove the unicode string length is reduced to 2
      SELECT REPLACE(@UnicodeReplace  collate SQL_Latin1_General_CP1_CI_AS , NCHAR(8204), ''),
             LEN(REPLACE(@UnicodeReplace   collate SQL_Latin1_General_CP1_CI_AS , NCHAR(8204), '')) AS Length  
      
         
      

      【讨论】:

        猜你喜欢
        • 2011-04-11
        • 1970-01-01
        • 2013-06-19
        • 2017-03-30
        • 1970-01-01
        • 2012-05-15
        • 1970-01-01
        • 2018-11-07
        • 1970-01-01
        相关资源
        最近更新 更多