在TSQL中替换不可见的unicode控制字符

时间:2017-04-18 09:55:33

标签: tsql unicode replace

我正在尝试在TSQL中搜索并替换字符串中不可见的unicode控制字符。 control character为“LSEP”或0x2028

我可以使用这两个查询之一轻松找到该角色:

SELECT * FROM Email WHERE Html LIKE '%[0x2028]%'

SELECT * FROM Email WHERE CHARINDEX(NCHAR(0x2028) COLLATE Latin1_General_BIN2, Html) > 0

但是,当我尝试更换它时,以下内容不起作用:

UPDATE Email
SET Html = REPLACE(Html, NCHAR(0x2028) COLLATE Latin1_General_BIN2, '')
WHERE Html LIKE '%[0x2028]%'

任何想法我做错了什么。我不能使用N'LSEP'来使用角色本身,因为当我尝试粘贴它时,它只是在脚本中显示为换行符!

请求样本输入:

</span><span>
</span><span>

1 个答案:

答案 0 :(得分:1)

试试这个(它用unicode LSEP char替换unicode SPACE)...

UPDATE Email
SET Html = REPLACE(Html, NCHAR(0x2028), NCHAR(0x0020))
WHERE Html LIKE '%[0x2028]%'