我正在尝试将字符串逐字符转换为十六进制,但我无法在Python3中找到它。
在较旧的python版本中,我在下面的工作:
test = "This is a test"
for c in range(0, len(test) ):
print( "0x%s"%string_value[i].encode("hex") )
但是使用python3我收到以下错误:
LookupError:'hex'不是文本编码;使用codecs.encode()来处理任意编解码器。
任何人都可以帮忙告诉我python3中的转换。
提前致谢
答案 0 :(得分:4)
在python 3x中使用binascii
而不是hex:
>>> import binascii
>>> binascii.hexlify(b'< character / string>')
答案 1 :(得分:2)
要打印:
for c in test:
print(hex(ord(c)))
转换:
output = ''.join(hex(ord(c)) for c in test)
或输出中没有'0x':
output = ''.join(hex(ord(c))[2:] for c in test)
答案 2 :(得分:1)
怎么样:
>>> test = "This is a test"
>>> for c in range(0, len(test) ):
... print( "0x%x"%ord(test[c]))
...
0x54
0x68
0x69
0x73
0x20
0x69
0x73
0x20
0x61
0x20
0x74
0x65
0x73
0x74