【问题标题】:How to fix binascii.Error: decoding with 'hex' codec failed (Error: Non-hexadecimal digit found)如何修复 binascii.Error:使用“hex”编解码器解码失败(错误:找到非十六进制数字)
【发布时间】:2019-10-22 06:19:47
【问题描述】:

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

【问题讨论】:

    标签: python utf-8 hex decode


    【解决方案1】:

    您需要删除 0x 前缀:

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

    【讨论】:

      猜你喜欢
      • 2020-08-28
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 2020-11-11
      • 2015-12-23
      • 2013-09-25
      相关资源
      最近更新 更多