Python 十六进制解码显示特殊包机的错误结果

Python hex decoding shows wrong result for special charters

我试图解码一个十六进制字符串,但有特殊字符。

当我运行

codecs.decode("5469eb73746f2026204b53484d5220666561742e205661737379", "hex")

我得到b'Ti\xebsto & KSHMR feat. Vassy'

但我想要Tiësto & KSHMR feat. Vassy

我在线查看了十六进制代码,但它是正确的。我需要其他功能还是只漏了一步?

您将十六进制值解码为 bytes 对象。如果您需要 (Unicode) 文本,请使用有效编码解码字节;您似乎在此处有 Latin 1 或 Windows Codepage 1252 数据:

>>> import codecs
>>> codecs.decode("5469eb73746f2026204b53484d5220666561742e205661737379", "hex")
b'Ti\xebsto & KSHMR feat. Vassy'
>>> _.decode('latin1')
'Tiësto & KSHMR feat. Vassy'