只好先转化成字符串 dim l as long dim s as string s = "2C6E" l = val( "&h" & mid( s, 1, 2 ) ) l = l * 256 + val( "&h" & mid( s, 3 ) ) s = chr( l ) 得到繁体的“测”.然后用对照表,或者找工具,或者用front page都行。
先谢谢你了!Dim l As Long Dim s As String s = "2C6E" l = Val("&h" & Mid(s, 1, 2)) l = l * 256 + Val("&h" & Mid(s, 3)) s = Chr(l) Text1.Text = s 后,我的Text1.Text显示为","而不是繁体的“测”,我的系统是XP,VB6 是不是我的系统有问题啊?
对于unicode big endian,我不清楚,是否何以研究一下strconv函数?
Private Sub Command1_Click() Dim arr(1) As Byte arr(0) = &H2C arr(1) = &H6E Text1 = StrConv(arr, vbFromUnicode) End Sub
不好意思,弄错了 Private Sub Command1_Click() Dim arr() As Byte arr = StrConv("测", vbFromUnicode)
Text1 = StrConv(arr, vbUnicode) End Sub
2C6E 是Unicode Big_Endian 编码方式中的"测"字
[名称] GB/BIG5内码转换和辨别[语言种类] Visual Basic[数据来源] 未知[源代码内容]VB提供的StrConv这个函数,完全可以解决简繁体的转换问题。下面是一个简繁体的转换 的函数,可以实现简体到繁体、繁体到简体的相互转化。'****** 简繁体互换 GB-->Unicode-->BIG5 Or BIG5-->Unicode-->GB ***************** '参数sStr为需要转换的文本 '参数iConver为要转化的类型,为1时表示繁体到简体的转换,为2时表示简体到繁体的转换 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 IfEnd Function注:使用这一函数,结果实际上显示的仍是繁体!所以我们只能称为内码转换如何判断文本是GB还是Big51. GB code的内码的两个字节都是从A0H - FEH之间的2. BIG code的内码的第一个字节是80H - FFH,第二个字节是00H - FFH 所以,你要浏览全文,看看是否有第二个字节是小于7FH的汉字,如果有的话,一般是BIG code的。 当然也有特殊情况,不过非常少见的 以上代码保存于: SourceCode Explorer(源代码数据库) 复制时间: 2003-04-26 下午 07:41:19 软件版本: 1.0.819 软件作者: Shawls E-Mail: [email protected] QQ: 9181729
dim l as long
dim s as string
s = "2C6E"
l = val( "&h" & mid( s, 1, 2 ) )
l = l * 256 + val( "&h" & mid( s, 3 ) )
s = chr( l )
得到繁体的“测”.然后用对照表,或者找工具,或者用front page都行。
Dim s As String
s = "2C6E"
l = Val("&h" & Mid(s, 1, 2))
l = l * 256 + Val("&h" & Mid(s, 3))
s = Chr(l)
Text1.Text = s
后,我的Text1.Text显示为","而不是繁体的“测”,我的系统是XP,VB6
是不是我的系统有问题啊?
Dim arr(1) As Byte
arr(0) = &H2C
arr(1) = &H6E
Text1 = StrConv(arr, vbFromUnicode)
End Sub
Private Sub Command1_Click()
Dim arr() As Byte
arr = StrConv("测", vbFromUnicode)
Text1 = StrConv(arr, vbUnicode)
End Sub
是Unicode Big_Endian 编码方式中的"测"字
的函数,可以实现简体到繁体、繁体到简体的相互转化。'****** 简繁体互换 GB-->Unicode-->BIG5 Or BIG5-->Unicode-->GB *****************
'参数sStr为需要转换的文本
'参数iConver为要转化的类型,为1时表示繁体到简体的转换,为2时表示简体到繁体的转换
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 IfEnd Function注:使用这一函数,结果实际上显示的仍是繁体!所以我们只能称为内码转换如何判断文本是GB还是Big51. GB code的内码的两个字节都是从A0H - FEH之间的2. BIG code的内码的第一个字节是80H - FFH,第二个字节是00H - FFH 所以,你要浏览全文,看看是否有第二个字节是小于7FH的汉字,如果有的话,一般是BIG code的。
当然也有特殊情况,不过非常少见的
以上代码保存于: SourceCode Explorer(源代码数据库)
复制时间: 2003-04-26 下午 07:41:19
软件版本: 1.0.819
软件作者: Shawls
E-Mail: [email protected]
QQ: 9181729