私は16進数の文字列が異なる言語の文字で構成されています。 この16進文字列をUnicodeテキストに変換するvb-script関数を手伝ってください。16進数をユニコードに変換するVBScript関数
16進文字列 "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
あなたは[何をしようとしているがありますかmcve]を共有するには?これが役に立たないと思われる場合は、投稿する前に[ask]をお読みください。 – Lankymart
問題を再現するサンプルコードを使用して質問を編集しました。 @Lankymart –
問題はそれぞれのHex値が1バイトを表しますが、一部の文字は2バイト以上で構成され、文字が不一致になっています。文字列には、各文字が何バイト使用されているかを識別する方法がないため、文字列を自動解読する方法を見つけることはほとんどありません。 – Lankymart