两个字符使用相同的ASCII码?

时间:2010-12-03 11:43:21

标签: sql unicode character-encoding ascii

我正在尝试清理最近导入的sql server 2008数据库,该数据库必须包含许多用于我的应用程序的无效字符。我发现不同的字符使用相同的ASCII码,¿这是可行的吗?

如果我执行此查询:

select ASCII('║'), ASCII('¦')

我明白了:

166 166

我需要做类似的工作,但使用.net代码。

如果我在.net中要求这些字符:

? ((int)'║').ToString() + ", " + ((int)'¦').ToString()
I get:
"9553, 166"

任何人都可以解释会发生什么

1 个答案:

答案 0 :(得分:4)

使用UNICODE功能代替ASCII

|都不是ASCII字符,因此使用它们调用ASCII会导致错误转换并导致错误的值。

此外,在使用UNICODE前缀调用N函数时,您需要使用unicode字符串:

SELECT UNICODE(N'║'), UNICODE(N'|')
-- Results in: 9553, 166