如何修复binascii.Error:使用“十六进制”编解码器解码失败(错误:找到了非十六进制数字)

时间:2019-10-22 06:19:47

标签: python utf-8 hex decode

我正在尝试使用codecs.decode从十六进制解码为utf-8。 我收到一个错误,我的字符串中包含一个非十六进制数字,但找不到类似的东西,并且在这样的站点中成功解码了它:https://onlineutf8tools.com/convert-hexadecimal-to-utf8

我尝试使用不同的方法,例如bytes.fromhex(),但遇到相同的错误。


import codecs

hexString = "0x35303839372c312c333733002c003130003a3930"
utf = codecs.decode(hexString, "hex").decode('utf-8')

这是预期的结果: 50897,1,373,10:90

我得到的错误:

binascii.Error:使用“十六进制”编解码器解码失败(错误:找到了非十六进制数字)

1 个答案:

答案 0 :(得分:0)

您将需要删除0x前缀:

import codecs
hexString = "0x35303839372c312c333733002c003130003a3930"[2:]
utf = codecs.decode(hexString, "hex").decode('utf-8')