2013-04-28 66 views
1

我有一個使用varchar數據類型在其數據庫中存儲阿拉伯名字的舊體制,現在的名字出現在數據庫中是這樣的:如何從varchar數據類型讀取阿拉伯字符?

"ãíÓÇÁ ÇáãÈíÖíä" 

現在我使用VB.NET建立一個新的制度,怎麼能我讀了這些名字以阿拉伯字符出現?

另外我需要指出的是,舊系統甚至存儲數據,正如我前面提到的那樣,它會以正確的格式轉換字符。

如何在新系統和SQL Server Management Studio中正確顯示它?

+0

是的,這是正確的。他們如何閱讀角色? – 2013-04-28 07:21:46

+0

好的,我將它標記爲遷移到[dba.stackexchange](http://dba.stackexchange.com/faq),在那裏你可以得到更好的答案。 – 2013-04-28 07:25:33

+0

數據庫中相關列的排序規則設置是否正確? http://stackoverflow.com/questions/7781103/sql-server-set-character-set-not-collat​​ion – 2013-04-28 15:30:18

回答

1

我面臨同樣的問題,我通過兩個步驟解決了這個問題:

1.更改數據庫中列的數據類型爲nvarchar成

2.使用編碼的數據轉變爲阿拉伯

我用下面的函數

 private string GetDataWithArabic(string srcData) 
    { 
     Encoding iso = Encoding.GetEncoding("iso-8859-1"); 
     Encoding unicode = Encoding.Default; 
     byte[] unicodeBytes = iso.GetBytes(srcData); 
     return unicode.GetString(unicodeBytes); 
    } 

但請確保您在DB數據上使用此方法一次,因爲如果使用兩次將會損壞數據