"1deadbeef3".decode('hex') # 输出:'\ x1d \ xea \ xdb \ xee \ xf3' '\x1d\xea\xdb\xee\xf3'.encode('hex') # 出:1deadbeef3
"1deadbeef3".decode('hex') # 追溯(最近一次通话): # File "<stdin>", line 1, in <module> # AttributeError:“ str”对象没有属性“ decode” b"1deadbeef3".decode('hex') # 追溯(最近一次通话): # File "<stdin>", line 1, in <module> #LookupError:“十六进制”不是文本编码;使用codecs.decode()处理任意编解码器 '\x1d\xea\xdb\xee\xf3'.encode('hex') # 追溯(最近一次通话): # File "<stdin>", line 1, in <module> #LookupError:“十六进制”不是文本编码;使用codecs.encode()处理任意编解码器 b'\x1d\xea\xdb\xee\xf3'.encode('hex') # 追溯(最近一次通话): # File "<stdin>", line 1, in <module> # AttributeError:“字节”对象没有属性“编码”
但是,如错误消息所建议,您可以使用该codecs模块来实现相同的结果:
import codecs codecs.decode('1deadbeef4', 'hex') # 出:b'\ x1d \ xea \ xdb \ xee \ xf4' codecs.encode(b'\x1d\xea\xdb\xee\xf4', 'hex') # 出:b'1deadbeef4'
注意,codecs.encode返回一个bytes对象。要获取str仅decodeASCII的对象:
codecs.encode(b'\x1d\xea\xdb\xee\xff', 'hex').decode('ascii') # 出:'1deadbeeff'