我試圖在 python 中解碼十六進制字符串。value = ""for i in "54 C3 BC 72 20 6F 66 66 65 6E 20 4B 6C 69 6D 61".split(" "): value += chr(int(i, 16))print(value)結果:開門氣候預期結果應該是“Tür offen Klima” 我怎樣才能使它正常工作?
2 回答

牛魔王的故事
TA貢獻1830條經(jīng)驗 獲得超3個贊
您的數(shù)據(jù)被編碼為 UTF-8,這意味著您有時必須查看多個字節(jié)才能獲得一個字符。最簡單的方法可能是將字符串解碼為字節(jié)序列,然后將這些字節(jié)解碼為字符串。Python 具有以下兩者的內(nèi)置功能:
value = bytes.fromhex("54 C3 BC").decode("utf-8")

慕絲7291255
TA貢獻1859條經(jīng)驗 獲得超6個贊
問題是字符串的結果
"54 C3 BC 72 20 6F 66 66 65 6E 20 4B 6C 69 6D 61"
確實是
開門氣候
導致“Tür offen Klima”的正確十六進制字符串實際上是:
"54 FC 72 20 6F 66 66 65 6E 20 4B 6C 69 6D 61"
因此,下面的代碼將生成您期望的結果:
value = ""
for i in "54 FC 72 20 6F 66 66 65 6E 20 4B 6C 69 6D 61".split(" "):
value += chr(int(i, 16))
print(value)
添加回答
舉報
0/150
提交
取消