我正在尝试清理最近导入的sql server 2008数据库,该数据库必须包含许多用于我的应用程序的无效字符。我发现不同的字符使用相同的ASCII码,¿这是可行的吗?
如果我执行此查询:
select ASCII('║'), ASCII('¦')
我明白了:
166 166
我需要做类似的工作,但使用.net代码。
如果我在.net中要求这些字符:
? ((int)'║').ToString() + ", " + ((int)'¦').ToString()
I get:
"9553, 166"
任何人都可以解释会发生什么
答案 0 :(得分:4)
使用UNICODE
功能代替ASCII
。
║
和|
都不是ASCII字符,因此使用它们调用ASCII
会导致错误转换并导致错误的值。
此外,在使用UNICODE
前缀调用N
函数时,您需要使用unicode字符串:
SELECT UNICODE(N'║'), UNICODE(N'|')
-- Results in: 9553, 166