使用binascii将hex-string转换为字符串

时间:2012-10-07 19:13:08

标签: python

通过十六进制字符串,它是一个常规字符串,除了每两个字符代表一个字节,它被映射到一些ASCII字符。

例如字符串

abc

将表示为

979899

我正在查看binascii模块,但实际上并不知道如何获取十六进制字符串并将其转回ascii字符串。 我可以使用哪种方法?

注意:我从979899开始,想要将其转换回abc

3 个答案:

答案 0 :(得分:3)

您可以使用ord()获取每个字符的整数值:

>>> map(ord, 'abc')
[97, 98, 99]
>>> ''.join(map(lambda c: str(ord(c)), 'asd'))
'979899'
>>> ''.join((str(ord(c)) for c in 'abc'))
'979899'

答案 1 :(得分:2)

您不需要binascii来获取字符串中字符的整数表示,您只需要内置函数ord()

s = 'abc'
print(''.join(map(lambda x:str(ord(x)),s)))  # outputs "979899"

答案 2 :(得分:0)

要从十六进制数中取回字符串,您可以使用

s=str(616263)
print "".join([chr(int(s[x:x+2], 16)) for x in range(0,len(s),2)])

请参阅http://ideone.com/dupgs