我想将输入的字符串用十六进制表示,首先声明,并不是转换成十六进制的字符串,而是像下面的反过程:
>>> '\x61\x62\x63\x64'
'abcd'
我尝试了python3中的encode('UTF-8')等方法,但是都没有找到怎样可以达到我的目的,Python中是否能够完成这个功能,如果可以,怎样才能达到我的目的,希望各位大神能够指教。
我想将输入的字符串用十六进制表示,首先声明,并不是转换成十六进制的字符串,而是像下面的反过程:
>>> '\x61\x62\x63\x64'
'abcd'
我尝试了python3中的encode('UTF-8')等方法,但是都没有找到怎样可以达到我的目的,Python中是否能够完成这个功能,如果可以,怎样才能达到我的目的,希望各位大神能够指教。
>>> '\x61\x62\x63\x64' == 'abcd'
True
是没有办法打印出来'x61x62x63x64'的,如果只是想查看'a'对应的ascii数值,可以用ord()
>>> ord('a')
97
>>> chr(97)
'a'
不知道这样可不可以满足你的要求
>>> [hex(ord(x)) for x in 'abcd']
['0x61', '0x62', '0x63', '0x64']
binascii 库里好几个函数都可以做到
import binascii
print(binascii.b2a_hex(b'abcd'))
# b'61626364'
或者 py3.5 直接这样写
print(b'abcd'.hex())
# 61626364
2 回答5.2k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答924 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
python3