我正在尝试在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>
答案 0 :(得分:1)
试试这个(它用unicode LSEP
char替换unicode SPACE
)...
UPDATE Email
SET Html = REPLACE(Html, NCHAR(0x2028), NCHAR(0x0020))
WHERE Html LIKE '%[0x2028]%'