我有一个旧系统,在其数据库中使用varchar
数据类型来存储阿拉伯名称,现在名称出现在数据库中,如下所示:
"ãíÓÇÁ ÇáãÈíÖíä"
现在我正在使用VB.NET构建一个新系统,如何读取这些名称以阿拉伯字符显示?
此外,我需要指出旧系统甚至存储数据,正如我前面提到的,它以正确的格式转换字符。
如何在新系统和SQL Server Management Studio中正确显示它?
答案 0 :(得分:1)
我遇到了同样的问题,我通过两个步骤解决了这个问题:
1.将DB中列的数据类型更改为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数据上使用此方法一次,因为如果使用两次,它将损坏数据
答案 1 :(得分:0)
我认为您的回答是:“存储和检索非英文字符”http://aalamrangi.wordpress.com/2012/05/13/storing-and-retrieving-non-english-unicode-characters-hindi-czech-arabic-etc-in-sql-server/
答案 2 :(得分:0)
When must we use NVARCHAR/NCHAR instead of VARCHAR/CHAR in SQL Server?