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

Sql 使用相同ASCII码的两个字符?,sql,unicode,character-encoding,ascii,Sql,Unicode,Character Encoding,Ascii,我正在尝试清理最近导入的sql server 2008数据库,该数据库中有许多无效字符用于我的应用程序。我发现不同的字符有相同的ASCII码,这是可能的 如果执行此查询: select ASCII('║'), ASCII('¦') 我得到: 166 166 我需要做类似的工作,但是使用.net代码 如果我在.net中要求这些字符: ? ((int)'║').ToString() + ", " + ((int)'¦').ToString() I get: "9553, 166" 任何人都可以

我正在尝试清理最近导入的sql server 2008数据库,该数据库中有许多无效字符用于我的应用程序。我发现不同的字符有相同的ASCII码,这是可能的

如果执行此查询:

select ASCII('║'), ASCII('¦')
我得到:

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

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

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

任何人都可以解释发生了什么,请使用该函数代替ASCII

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

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

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

使用函数代替ASCII

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

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

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

这两个字符都不是ASCII-ASCII只能升到127(这是一个7位代码)。这两个字符都不是ASCII-ASCII只能升到127(这是一个7位代码)。好的,但是,我如何才能用sql获得一个类似的结果(int)…?@Ariel Larraburu-
选择UNICODE('UNICODE')║'), UNICODE('Alpha')
将返回正确的值。否,返回166,166。试试看。@Ariel Larraburu-我的错。字符串必须是UNICODE才能以…
选择UNICODE开头(N'║'), UNICODE(N'alpha')
返回
9553166
OK,但是,如何使用sql获得与(int)“…”类似的结果?@Ariel Larraburu-
选择UNICODE('║'), UNICODE('Alpha')
将返回正确的值。否,返回166,166。试试看。@Ariel Larraburu-我的错。字符串必须是UNICODE才能以…
选择UNICODE开头(N'║'), UNICODE(N'')
返回
9553166