通过十六进制字符串,它是一个常规字符串,除了每两个字符代表一些字节,它被映射到一些 ASCII 字符。
所以例如字符串
abc
将表示为
979899
我正在查看binascii模块,但真的不知道如何获取十六进制字符串并将其转换回 ascii 字符串。我可以使用哪种方法?
注意:我开始979899
并希望将其转换回abc
You can use ord()
to get the integer value of each character:
>>> map(ord, 'abc')
[97, 98, 99]
>>> ''.join(map(lambda c: str(ord(c)), 'asd'))
'979899'
>>> ''.join((str(ord(c)) for c in 'abc'))
'979899'
You don't need binascii to get the integer representation of a character in a string, all you need is the built in function ord()
.
s = 'abc'
print(''.join(map(lambda x:str(ord(x)),s))) # outputs "979899"
要从十六进制数中取回字符串,您可以使用
s=str(616263)
print "".join([chr(int(s[x:x+2], 16)) for x in range(0,len(s),2)])