首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

求vb 关于unicode十六进制和汉字互换解释解决方案

2012-02-07 
求vb 关于unicode十六进制和汉字互换解释菜鸟求助高手指点下我--------------------我是初学者,麻烦高手尽

求vb 关于unicode十六进制和汉字互换解释
菜鸟求助高手指点下我
--------------------
我是初学者,麻烦高手尽量提供下源码以供参考。
比如:我的窗体中有3个text,(text1。text2,text3).
在text1里面输入汉字,那么text3中出现相对应的unicode十六进制的编码,我在text2中输入十六进制编码,在text3中出现对应的汉字。
例如:我在text1中输入一个”王“,那么text3中出现的是”738B“,
我在text2中输入”738B“,那么text3中出现的是”王“
-----------------------------
下面是我弄的代码。

Dim txt1 As String
Dim txt2 As String
Dim txt3 As String


Private Sub Text1_Change()
txt1 = Text1.Text


txt3 = StrConv(txt1, vbFromUnicode)

txt2 = StrConv(txt1, vbUnicode)


Text2.Text = txt3

Text3.Text = txt2

End Sub

----------------------------------------
不知道为什么转换过来都是乱码了,不解,因为我初学编程,也是初学vb。麻烦告诉告诉我下。

[解决办法]
函数用得不对,而且还要进行进制转换:

VB code
Dim txt1 As StringDim txt2 As StringDim txt3 As StringPrivate Sub Text1_Change()txt1 = Text1.Texttxt3 = DEC_to_HEX(AscW(txt1))Text3.Text = txt3End SubPrivate Sub Text2_Change()txt2 = Text2.Texttxt3 = ChrW(HEX_to_DEC(txt2))Text3.Text = txt3End Sub' 用途:将十六进制转化为十进制' 输入:Hex(十六进制数)' 输入数据类型:String' 输出:HEX_to_DEC(十进制数)' 输出数据类型:Long' 输入的最大数为7FFFFFFF,输出的最大数为2147483647Public Function HEX_to_DEC(ByVal Hex As String) As Long    Dim i As Long    Dim B As Long        Hex = UCase(Hex)    For i = 1 To Len(Hex)        Select Case Mid(Hex, Len(Hex) - i + 1, 1)            Case "0": B = B + 16 ^ (i - 1) * 0            Case "1": B = B + 16 ^ (i - 1) * 1            Case "2": B = B + 16 ^ (i - 1) * 2            Case "3": B = B + 16 ^ (i - 1) * 3            Case "4": B = B + 16 ^ (i - 1) * 4            Case "5": B = B + 16 ^ (i - 1) * 5            Case "6": B = B + 16 ^ (i - 1) * 6            Case "7": B = B + 16 ^ (i - 1) * 7            Case "8": B = B + 16 ^ (i - 1) * 8            Case "9": B = B + 16 ^ (i - 1) * 9            Case "A": B = B + 16 ^ (i - 1) * 10            Case "B": B = B + 16 ^ (i - 1) * 11            Case "C": B = B + 16 ^ (i - 1) * 12            Case "D": B = B + 16 ^ (i - 1) * 13            Case "E": B = B + 16 ^ (i - 1) * 14            Case "F": B = B + 16 ^ (i - 1) * 15        End Select    Next i    HEX_to_DEC = BEnd Function' 用途:将十进制转化为十六进制' 输入:Dec(十进制数)' 输入数据类型:Long' 输出:DEC_to_HEX(十六进制数)' 输出数据类型:String' 输入的最大数为2147483647,输出最大数为7FFFFFFFPublic Function DEC_to_HEX(Dec As Long) As String    Dim a As String    DEC_to_HEX = ""    Do While Dec > 0        a = CStr(Dec Mod 16)        Select Case a            Case "10": a = "A"            Case "11": a = "B"            Case "12": a = "C"            Case "13": a = "D"            Case "14": a = "E"            Case "15": a = "F"        End Select        DEC_to_HEX = a & DEC_to_HEX        Dec = Dec \ 16    LoopEnd Function 

热点排行