在项目visual basic

时间:2018-04-19 14:40:22

标签: vb.net encoding arabic collation

我有一个包含数据的数据库,如下图所示

enter image description here

备注

  1. 整理数据库('SQL_Latin1.General_CP1_CI_AS')。
  2. 我没有权利将Collat​​ion更改为Araic_CI_AS。
  3. 如果您将Collat​​ion更改为Araic_CI_AS,数据库中的数据显示将显示在新程序中,但程序出现问题并以旧的程序显示为?????那个旧程序。
  4. 我无法修改旧程序,因为它没有源代码。
  5. 此数据库已过时,任何人都无法修改(排序规则[行]或排序规则[数据库])

    当您通过Visual Basic 2015将数据库链接到新的独立程序以使用数据库中的某些数据时,将显示以下格式,如图所示...

    enter image description here

    我想要的是显示数据库的内容以将(ãßÇÆäæÂáÇÊ)句子改为默认语言阿拉伯语。

    我希望通过Visual Basic代码找到解决方案,而不是通过修改数据库。

    感谢所有

1 个答案:

答案 0 :(得分:0)

在通过以下代码转换编码字符的过程中已解决了该问题:

Private Function conv1256(ByVal txt As String) As String
    Dim dic As New Dictionary(Of String, String)
    Const _1256 As String = "ÐÏÌÍÎåÚÛÝÞËÕÖØßãäÊÇáÈíÓÔÙÒæÉìÑÄÁÆøºÅñõðó¡ÜÃòö¿Âú"
    Const _utf8 As String = "ذدجحخهعغفقثصضطكمنتالبيسشظزوةىرؤءئّ؛إًٌَُ،ـأٍِ؟آْ"
    For i = 0 To (_1256.Length) - 1
        dic.Add(_1256.Chars(i), _utf8.Chars(i))
    Next i
    For Each ch In txt
        conv1256 &= If(dic.ContainsKey(ch), dic.Item(ch), ch)
    Next
End Function

以这种方式使用:

MsgBox(conv1256("ÈÓãö Çááå ÇáÑøÍãä ÇáÑøÍíã"))
祝你好运,谢谢大家