VBScript函数将十六进制转换为unicode

时间:2016-11-03 10:34:17

标签: unicode vbscript hex

我有十六进制字符串,由不同的语言字母组成。 请帮我一个vb脚本函数,它将这个十六进制字符串转换为Unicode文本。

对于十六进制字符串“506F7274756775C3AA73”,我需要将“Português”作为输出

我尝试了以下功能,它将“Português”作为输出。

MsgBox ConvertHexToUnicode("506F7274756775C3AA73")



Function ConvertHexToUnicode(hexString)

Dim Strlen
Dim Charaset_array(20)
Dim i
Dim j
Strlen = Len(hexString)
i = 0
j = 1

Do
    Charaset_array(i) = Mid(hexString,j, 2) 

    i = i + 1
    j = j + 2


Loop While j < Strlen

ConvertHexToUnicode = ""

For Each chara In Charaset_array

If Not(IsEmpty(chara)) Then
    ConvertHexToUnicode = ConvertHexToUnicode + ChrW("&H" & chara )
End If
Next

End Function

1 个答案:

答案 0 :(得分:1)

使用Mid()将输入字符串剪切为十六进制数字(字符串),前置&amp; H以获取十六进制文字,使用ChrW()来构建字符:

>> s = "00001F00"
>> WScript.Echo Mid(s, 5, 4)
>> WScript.Echo "&H" & Mid(s, 5, 4), CLng("&H" & Mid(s, 5, 4))
>> WScript.Echo ChrW("&H" & Mid(s, 5, 4)), AscW(ChrW("&H" & Mid(s, 5, 4)))
>>
1F00
&H1F00 7936
ἀ 7936