Sql 使用相同ASCII码的两个字符?
我正在尝试清理最近导入的sql server 2008数据库,该数据库中有许多无效字符用于我的应用程序。我发现不同的字符有相同的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" 任何人都可以
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