系统是繁体系统,字符串是简体字节数组
请问如何转换成繁体字并正确显示出来?拿个字打个比方,“术”字,其字节数组是 byte(0)=2f  byte(1)=67
如何转换成繁体字“術”呢?我的代码在简体系统下能正常转换,但繁体系统下就不行了
Function JFZh(fString As String) As String
Dim sLen As Long
Dim sString As String
sLen = lstrlen(fString)
sString = Space(sLen)LCMapString &H804, &H4000000, fString, sLen, sString, sLen
JFZh = sString
End Function

解决方案 »

  1.   

    你只能找简繁转换程序把你的VB源代码转换后拿到繁体系统里编译才行。如果你的汉字在源代码中是以byte(0)=2f byte(1)=67这样的形式存在的,那么你必须自行找到繁体汉字的字节码写到源代码中去。如果你开发的就是简繁转换程序那就不能用第三方控件,你得自己搞一个简繁对照表,通过查表法转换。
      

  2.   

    http://download.csdn.net/source/3012946
      

  3.   

    Option Explicit
    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 Long
    Dim AppDisk$, aa$, ii&
    Private Sub Form_Load()
       Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
       AppDisk = IIf(Right(App.Path, 1) = "\", App.Path, App.Path & "\")
       Command1.Caption = "简体转繁体"
       Open AppDisk & "test.txt" For Input As #1
       Text1.Text = StrConv(InputB(LOF(1), 1), vbUnicode)
       Close #1
    End SubPrivate Sub Command1_Click()
       ii = lstrlen(Text1.Text)
       aa = Space(ii)
       If Command1.Caption = "简体转繁体" Then
          LCMapString &H804, &H4000000, Text1.Text, ii, aa, ii
       Else
          LCMapString &H804, &H2000000, Text1.Text, ii, aa, ii
       End If
       Text1.Text = aa
       Command1.Caption = IIf(Command1.Caption = "繁体转简体", "简体转繁体", "繁体转简体")
    End Sub