困惑很多:大体情况是这样的,我在简体XP上用vb开发的一个小软件,在繁体系统上都是乱码,在繁体系统上将区域选项改为中文简体,我的软件是可以正常显示了,但导出为Execl的数据还是乱码,而且客户系统的软件又成乱码了,后来将汉字在简体和繁体系统上转化为big5码,但在繁体XP上运行还是乱码,试着用StrConv也不行!
我想有个函数或控件可以对简体进行处理后将繁体显示出来,包括软件本身的,和从数据库里读出来的:)
希望高手指教!分没多少了,还请包涵:)
在线等:)
我想有个函数或控件可以对简体进行处理后将繁体显示出来,包括软件本身的,和从数据库里读出来的:)
希望高手指教!分没多少了,还请包涵:)
在线等:)
在所有的字符输出前 ,根据系统进行繁转简 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
方法一
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
zsj1101(江南神探) 的方法感觉不错的,只是没有成功, 在繁体下还是乱码
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此方法经测试,可以!
刚才测试了,楼上的方法在简体系统下是可以将简体转换为繁体的,但在繁体系统中还是不能转换我是在臺灣,也用的是繫體中文版沒有你所說的性況啊。
...................................................
...................................................
资源文件不全吧....LZ会用多少个繁体字呢.....有那么多么.
IE里面的编码是怎么办的?