【发布时间】:2016-11-03 10:34:16
【问题描述】:
我有由不同语言字母组成的十六进制字符串。 请帮助我使用 vb-script 函数将这个十六进制字符串转换为 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
【问题讨论】:
-
您尝试过什么?您有minimal reproducible example 可以分享吗?如果这似乎没有帮助,请在发帖前阅读How to Ask。
-
我已使用可重现我的问题的示例代码编辑了我的问题。 @兰基玛特
-
问题是每个十六进制值代表 1 个字节,但某些字符将由 2 个字节或更多字节组成,这就是字符不匹配的原因。因为字符串无法识别每个字符使用多少字节,所以您不太可能找到解码字符串的自动方法。