SQL Server替换函数与unicode修饰符

时间:2016-08-05 17:53:32

标签: sql-server unicode utf-16

我的数据包含一些半角unicode字符(特别是U + FF9F),似乎干扰了replace函数:

select replace(convert(nvarchar(max), N'"'), N'"', N'""')

按预期返回"",但

select replace(convert(nvarchar(max), N'"゚'), N'"', N'""')

返回未受影响的输入字符串:"゚。我相信这是因为SQL Server将双字符序列解释为与"本身不同。

有没有办法让replace函数用两个替换双引号字符?

编辑:这个问题与Replacing a specific Unicode Character in MS SQL Server中提出的答案略有不同。这个问题是要求删除一个半角字符,而这个问题是关于修改半角字符旁边的字符。在这两个问题中,需要将排序规则设置为Latin1_General_BIN

1 个答案:

答案 0 :(得分:1)

使用Prevent flipping of the front facing camera处理Unicode字符。

SELECT REPLACE(CONVERT(nvarchar(max), N'"゚') COLLATE Latin1_General_BIN, N'"', N'""')