【问题标题】:Python UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8c in position 2: invalid start bytePython UnicodeDecodeError:“utf-8”编解码器无法解码位置 2 中的字节 0x8c:无效的起始字节
【发布时间】:2018-01-16 10:02:44
【问题描述】:

有人知道如何在 Python 3.6.0 版上解码我的十六进制值吗?

我使用的是 x.decode("hex") 但由于 python 更新它不再工作了。

这是我的十六进制值:

01008C647620302E31302E372070762039393130333120736E20333137337C6661336232653863206D7A20313778313720736B6620343235357C34376330643162302073706620333237397C363236373361376520627066203332363137307C61653138366364642073746620323538397C623634383035633220616D66203335333230357C633736333133626200

【问题讨论】:

    标签: python syntax hex decode


    【解决方案1】:

    在 Python 3.6 中,不需要解码字符串(str 类型),因为它们已经是 utf-8。此外,普通的decode 函数只允许“标准”字符串解码。也就是说,这个函数不能解码十六进制。

    相反,此“特殊”解码功能已移至codecs.decode。因此,您希望将代码重写为:

    import codecs
    x = "01008C647620302E31302E372070762039393130333120736E20333137337C6661336232653863206D7A20313778313720736B6620343235357C34376330643162302073706620333237397C363236373361376520627066203332363137307C61653138366364642073746620323538397C623634383035633220616D66203335333230357C633736333133626200"
    codecs.decode(x, 'hex')
    

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 1970-01-01
      • 2021-03-05
      • 2022-05-30
      • 2021-12-01
      • 2016-05-13
      • 2017-05-03
      • 2020-02-06
      • 1970-01-01
      相关资源
      最近更新 更多