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

问题描述 投票:0回答:1

我正在尝试使用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:使用“十六进制”编解码器解码失败(错误:找到了非十六进制数字)

python utf-8 hex decode
1个回答
0
投票

您将需要删除0x前缀:

import codecs
hexString = "0x35303839372c312c333733002c003130003a3930"[2:]
utf = codecs.decode(hexString, "hex").decode('utf-8')
© www.soinside.com 2019 - 2024. All rights reserved.