如何在Python3中编码十六进制?
我正试图在python3中为如何在Python3中编码十六进制?,python,python-3.x,Python,Python 3.x,我正试图在python3中为encode(“hex”)编写等效代码 这是我得到的: s = "'" print(str(s).encode('hex')) >>27 Python 2.7中的Tringbinascii: import binascii s = "'" print(binascii.hexlify(str(s))) >>27 因此,在Python2.7中,两种方法给出相同的结果。现在我尝试在Python 3.5中运行此代码: import binasc
encode(“hex”)
编写等效代码
这是我得到的:
s = "'"
print(str(s).encode('hex'))
>>27
Python 2.7中的Tringbinascii
:
import binascii
s = "'"
print(binascii.hexlify(str(s)))
>>27
因此,在Python2.7
中,两种方法给出相同的结果。现在我尝试在Python 3.5中运行此代码:
import binascii
s = "'"
print(binascii.hexlify(str(s)))
>>Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
但我不确定下一步要做什么。如何获取我的
27
?您只需解码它,如下所示:
binascii.hexlify(str(s).encode('utf8')).decode('utf8'))
s
已经是一个字符串,所以不需要str
它;相反,根据消息,您需要将其设置为“类似字节的对象”。请尝试binascii.hexlify(s.encode('utf8')).decode()
或codecs.encode(s.encode('utf-8'),“hex”).decode()
import binascii
s = "'"
print(binascii.hexlify(str(s).encode('utf8')))
>>b'27'