Python3 - 如何将字符串转换为十六进制

时间:2016-08-12 03:42:14

标签: python python-3.x

我正在尝试将字符串逐字符转换为十六进制,但我无法在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中的转换。

提前致谢

3 个答案:

答案 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