繁体   English   中英

python 将十六进制字符串编码/解码为 utf-8 字符串

[英]python encode/decode hex string to utf-8 string

我试图解码 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

预期结果应该是“Tür offen Klima” 我怎样才能使它正常工作?

您的数据编码为 UTF-8,这意味着您有时必须查看多个字节才能获得一个字符。 最简单的方法可能是将字符串解码为字节序列,然后将这些字节解码为字符串。 Python 具有以下两种内置功能:

value = bytes.fromhex("54 C3 BC").decode("utf-8")

问题是字符串的结果

"54 C3 BC 72 20 6F 66 66 65 6E 20 4B 6C 69 6D 61"

确实是

Tür offen Klima

导致“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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM