2013-04-28 67 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数据上使用此方法一次,因为如果使用两次将会损坏数据