首页 > 解决方案 > 如何修复 binascii.Error:使用“hex”编解码器解码失败(错误:找到非十六进制数字)

问题描述

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

标签: pythonutf-8hexdecode

解决方案


您将需要删除0x前缀:

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

推荐阅读