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

替换TSQL中不可见的unicode控制字符,tsql,unicode,replace,Tsql,Unicode,Replace,我试图在TSQL中搜索并替换字符串中不可见的unicode控制字符。输入为“LSEP”或0x2028 使用以下两个查询中的任意一个,我都可以很容易地找到字符: SELECT * FROM Email WHERE Html LIKE '%[0x2028]%' 或 然而,当我尝试更换它时,以下几点根本不起作用: UPDATE Email SET Html = REPLACE(Html, NCHAR(0x2028) COLLATE Latin1_General_BIN2, '') WHERE Htm

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

使用以下两个查询中的任意一个,我都可以很容易地找到字符:

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

然而,当我尝试更换它时,以下几点根本不起作用:

UPDATE Email
SET Html = REPLACE(Html, NCHAR(0x2028) COLLATE Latin1_General_BIN2, '')
WHERE Html LIKE '%[0x2028]%'
知道我做错了什么吗。我不能使用
N'LSEP'
来使用字符本身,因为当我尝试粘贴它时,它只是作为换行符出现在脚本中

按要求输入样本:

</span><span>
</span><span>
试试这个(它用unicode
空格
字符替换unicode
LSEP


您能提供一个示例输入吗?恐怕我无法重现您的情况,也不需要collate语句才能使您的CHARINDEX语句正常工作-此小提琴显示您的工作情况(请注意replace语句后输出长度的变化):后续问题-您如何确定这是列中的控制字符?@Bridge它导致JavaScript字符串中的换行符呈现到屏幕上。结果,JavaScript中的换行符破坏了网站代码。当我查看来自数据库的输出字符串时,我确定是这个控制字符导致了问题(Outlook发送的HTML电子邮件呈现)。我仍然不确定您是如何识别这个特定字符的。您确定这不是一个常规的新行,例如CHAR(10)和CHAR(13)的组合吗?
</span><span>
</span><span>
UPDATE Email
SET Html = REPLACE(Html, NCHAR(0x2028), NCHAR(0x0020))
WHERE Html LIKE '%[0x2028]%'