困惑很多:大体情况是这样的,我在简体XP上用vb开发的一个小软件,在繁体系统上都是乱码,在繁体系统上将区域选项改为中文简体,我的软件是可以正常显示了,但导出为Execl的数据还是乱码,而且客户系统的软件又成乱码了,后来将汉字在简体和繁体系统上转化为big5码,但在繁体XP上运行还是乱码,试着用StrConv也不行!
我想有个函数或控件可以对简体进行处理后将繁体显示出来,包括软件本身的,和从数据库里读出来的:)
希望高手指教!分没多少了,还请包涵:)
在线等:)

解决方案 »

  1.   

    你可以調用word的簡繁體轉換試試
      

  2.   

    用替换
    在所有的字符输出前 ,根据系统进行繁转简 simplized  转换。
    中间有些判断自己去写'''''''''''''''''''''''''''''''''''''''''''''''''''Dim strFt As String '繁体字库
    Dim strJt  As String  '简体字库Private Sub Form_Load()
    strJt = "啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按" ' 还有N多,未列出
    strFt = "啊阿埃挨哎唉哀皚癌藹矮艾礙愛隘鞍氨安俺按" ' 还有N多,未列出
    End SubFunction simplized(sFt As String)    '繁转简体
    Dim SJt As String  '简体
    SJt = ""
    Dim i As Integer
    For i = 1 To Len(sFt)
        SJt = SJt & Mid(strJt, InStr(strFt, Mid(sFt, i, 1)), 1)
    Next i
    simplized = SJt
    End FunctionPrivate Sub Command1_Click()
    Text1 = simplized(Text1)
    End Sub
      

  3.   

    还是在繁体的OS重新编译程序吧文件的转换可以使用Windows自带的转码器工具。ConvetZ这个工具也不错。
      

  4.   

    恩,boy98() 说的很有道理,我试试,谢谢:)
      

  5.   

    文本轉換BIG52GB
     
    方法一
    Function GBBIG5(sStr As String, iConver As Integer) As String
      On Error Resume Next
      Dim STR
      If iConver = 1 Then     'BIG5-->GB
         STR = StrConv(sStr, vbFromUnicode, &H804)
         GBBIG5 = StrConv(STR, vbUnicode, &H404)
      ElseIf iConver = 2 Then 'GB-->BIG5
         STR = StrConv(sStr, vbFromUnicode, &H404)
         GBBIG5 = StrConv(STR, vbUnicode, &H804)
      End If
    End Function方法二
    Private Declare Function LCMapString Lib "kernel32" Alias "LCMapStringA" ( _
                                             ByVal Locale As Long, _
                                             ByVal dwMapFlags As Long, _
                                             ByVal lpSrcStr As String, _
                                             ByVal cchSrc As Long, _
                                             ByVal lpDestStr As String, _
                                             ByVal cchDest As Long) As Long
    Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" ( _
                                         ByVal lpString As String) As LongDim STf           As String '繁体字符串
    Dim STj           As String '簡体字符串
    Dim STlen         As Long   '待轉換字串長度
    Dim RangeToChange As RangeFunction J2F(c As Range) As String    'Gb碼簡体轉繁体
      STlen = lstrlen(c)
      STf = Space(STlen)
      LCMapString &H804, &H4000000, c, STlen, STf, STlen
      J2F = STf
    End FunctionFunction F2J(c As Range) As String   'Gb碼繁体轉簡体
       STlen = lstrlen(c)
       STj = Space(STlen)
       LCMapString &H804, &H2000000, c, STlen, STj, STlen
       F2J = STj
    End Function
      

  6.   

    boy98() 的是可以用的,在繁体XP下显示的是繁体,但字库好长,还在想想有没有简单的方法
    zsj1101(江南神探) 的方法感觉不错的,只是没有成功, 在繁体下还是乱码
      

  7.   

    好像win2k及以及以后的都是gbk碼吧。我的編碼在WIN98+VB6 SP6運行通過的。
      

  8.   

    Private Declare Function LCMapString Lib "kernel32" Alias "LCMapStringA" ( _
                                             ByVal Locale As Long, _
                                             ByVal dwMapFlags As Long, _
                                             ByVal lpSrcStr As String, _
                                             ByVal cchSrc As Long, _
                                             ByVal lpDestStr As String, _
                                             ByVal cchDest As Long) As Long
    Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" ( _
                                         ByVal lpString As String) As LongDim STf           As String '繁体字符串
    Dim STj           As String '簡体字符串
    Dim STlen         As Long   '待轉換字串長度
    Dim RangeToChange As RangeFunction J2F(c As Range) As String    'Gb碼簡体轉繁体
      STlen = lstrlen(c)
      STf = Space(STlen)
      LCMapString &H804, &H4000000, c, STlen, STf, STlen
      J2F = STf
    End FunctionFunction F2J(c As Range) As String   'Gb碼繁体轉簡体
       STlen = lstrlen(c)
       STj = Space(STlen)
       LCMapString &H804, &H2000000, c, STlen, STj, STlen
       F2J = STj
    End Function此方法经测试,可以!
      

  9.   

    Dim RangeToChange As Range,好像在VB下编译不通过吧?
      

  10.   

    用本本在Excel vba中臨時寫的。所以Dim RangeToChange As Range cny619(船长) ( ) 信誉:100    Blog  2006-12-15 16:23:59  得分: 0  
     
       刚才测试了,楼上的方法在简体系统下是可以将简体转换为繁体的,但在繁体系统中还是不能转换我是在臺灣,也用的是繫體中文版沒有你所說的性況啊。
      

  11.   

    ...................................................
    ...................................................
    ...................................................
    资源文件不全吧....LZ会用多少个繁体字呢.....有那么多么.
    IE里面的编码是怎么办的?