我有一个既有二进制字符又有字符串字符的字符串,我想先把它转换成二进制,然后再转换成十六进制。
字符串如下:
<81>^Q<81>"^Q^@^[)^G ^Q^A^S^A^V^@<83>^Cd<80><99>}^@N^@^@^A^@^@^@^@^@^@^@j
如何在python中转换这个字符串,使十六进制格式的输出与下面的类似?
24208040901811001B12050809081223431235113245422F0A23000000000000000000001F
最佳答案
你可以这样使用ORD和HEX:
>>> s = 'some string'
>>> hex_chars = map(hex,map(ord,s))
>>> print hex_chars
['0x73', '0x6f', '0x6d', '0x65', '0x20', '0x73', '0x74', '0x72', '0x69', '0x6e', '0x67']
>>> hex_string = "".join(c[2:4] for c in hex_chars)
>>> print hex_string
736f6d6520737472696e67
>>>
或者使用内置编码:
>>> s = 'some string'
>>> print s.encode('hex_codec')
736f6d6520737472696e67
>>>