在 python 中,我有一串十六进制值 'e65814e4382759f85550029e723dc7e7',我想将其编码为字节,问题是如果我使用
b'string'
或
bytes(string, 'ascii')
它将值编码为字节,就好像它是一个字符串,但它们不是,它已经是一组 16 个十六进制对。
那么我如何让 python 识别我写的内容作为已经在咬中的数据,或者强制绕过以在某种意义上“按原样”编码和转换对象。
最佳答案
您想使用 binascii
模块:
>>> import binascii
>>> hexstr = 'e65814e4382759f85550029e723dc7e7'
>>> binascii.unhexlify(hexstr)
b"\xe6X\x14\xe48'Y\xf8UP\x02\x9er=\xc7\xe7"
并向自己证明...
>>> [f"{b:x}" for b in binascii.unhexlify(hexstr)]
['e6', '58', '14', 'e4', '38', '27', '59', 'f8', '55', '50', '2', '9e', '72', '3d', 'c7', 'e7']
关于python将字符串识别为已经被咬的数据,或强制绕过编码和转换对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50902906/