gpt4 book ai didi

python - Python 3.2 中的 HEX 解码

转载 作者:太空狗 更新时间:2023-10-29 21:35:11 27 4
gpt4 key购买 nike

在 Python 2.x 中我可以这样做:

>>> '4f6c6567'.decode('hex_codec')
'Oleg'

但是在 Python 3.2 中我遇到了这个错误:

>>> b'4f6c6567'.decode('hex_codec')
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
b'4f6c6567'.decode('hex_codec')
TypeError: decoder did not return a str object (type=bytes)

根据docs hex_codec 应该提供“字节到字节的映射”。所以这里正确使用了byte-string对象。

如何消除此错误以避免从十六进制编码文本转换的笨拙变通方法?

最佳答案

在 Python 3 中,bytes.decode() 方法用于将原始字节解码为 Unicode,因此您必须使用 codecs 模块获取解码器 codecs.getdecoder()codecs.decode() 用于 bytes-to-bytes 编码:

>>> codecs.decode(b"4f6c6567", "hex_codec")
b'Oleg'
>>> codecs.getdecoder("hex_codec")(b"4f6c6567")
(b'Oleg', 8)

文档中似乎缺少后一个函数,但有一个有用的文档字符串。

您可能还想看看 binascii.unhexlify()

关于python - Python 3.2 中的 HEX 解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11384583/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com