1

我有一个旧系统,它varchar在其数据库中使用数据类型来存储阿拉伯名称,现在名称出现在数据库中,如下所示:

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

现在我正在使用 VB.NET 构建一个新系统,如何读取这些名称以显示为阿拉伯字符?

另外我需要在这里指出,旧系统即使存储了我之前提到的数据,它也会将字符转换为正确的格式。

如何在新系统和 SQL Server Management Studio 中正确显示?

4

3 回答 3

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);
    }

但请确保在数据库数据上使用此方法一次,因为如果使用两次会损坏数据

于 2013-07-19T07:57:59.480 回答
0

你试过nvarchar吗?您可以在下面的链接中找到一些有用的信息

我们什么时候必须在 SQL Server 中使用 NVARCHAR/NCHAR 而不是 VARCHAR/CHAR?

于 2013-04-28T20:27:20.110 回答
0

我想你的答案在这里:“存储和检索非英文字符” http://aalamrangi.wordpress.com/2012/05/13/storing-and-retrieving-non-english-unicode-characters-hindi-czech-arabic -etc-in-sql-server/

于 2013-04-28T20:15:46.250 回答