2010-12-03 95 views
0

我想清理一個最近導入的sql server 2008數據庫,這對我的應用程序來說有許多無效的字符。我用相同的ASCII代碼發現了不同的字符,這是可能的。兩個字符具有相同的ASCII碼?

如果我執行這個查詢:

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

我得到:

166 166 

我需要做類似的工作,但.NET代碼。

如果我問這些字符在.NET:

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

任何人都可以解釋發生了什麼

+1

這些字符也不是ASCII - ASCII只上升到127(這是一個7位代碼)。 – 2010-12-03 11:48:35

回答

4

相反的ASCII,使用UNICODE功能。

兩個|不是一個ASCII字符,因此調用ASCII他們會錯誤地轉換並導致錯誤值。

此外,您需要使用Unicode字符串調用UNICODE功能時,使用N前綴:

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

好的,但是,我怎麼能得到一個類似的結果爲(int)'...? – 2010-12-03 12:03:21

相關問題