如何将字符串的二进制表示形式转换回Python中的原始字符串?

时间:2015-02-03 21:38:01

标签: python decode binary-data

我无法找到以下问题的答案: 从字符串开始,将其转换为二进制表示。你如何在Python中找回原始字符串?

示例:

a = 'hi us'
b = ''.join(format(ord(c), '08b') for c in a)

然后b = 0110100001101001001000000111010101110011

现在我想在Python 2.x中获得'hi us'。例如,该网站完成任务: http://string-functions.com/binary-string.aspx

我已经看到了Java的几个答案,但是没有幸运地实现Python。我也试过b.decode(),但不知道在这种情况下我应该使用哪种编码。

2 个答案:

答案 0 :(得分:6)

使用此代码:

import binascii
n = int('0110100001101001001000000111010101110011', 2)
binascii.unhexlify('%x' % n)

答案 1 :(得分:2)

>>> print ''.join(chr(int(b[i:i+8], 2)) for i in range(0, len(b), 8))
'hi us'

将b拆分为8块,使用基数2解析为int,转换为char,将结果列表作为字符串连接。