我无法使用TSQL在字符串中找到特殊的Unicode字符-CHARINDEX
externalIPs
你有什么主意吗? 在此先感谢。
答案 0 :(得分:4)
U+202D LEFT-TO-RIGHT OVERRIDE
是一种定向字符,大多数排序规则比较都将忽略它。要解决此问题,请显式使用二进制排序规则:
SELECT CHARINDEX(@n, @str COLLATE Latin1_General_BIN2)
对于PATINDEX
,同样,如果您要小心地使用Unicode常量(但是我还是会拼写NCHAR
,因为不可见的字符会令人困惑):
select patindex( N'%%' ,@str COLLATE Latin1_General_BIN2)