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

How to convert a binary representation of a string back to the original string in Python?

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

示例:

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

然后 b = 0110100001101001001000000111010101110011

现在我想 'hi us' 回到 Python 2.x。比如这个网站完成任务: http://string-functions.com/binary-string.aspx

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

使用此代码:

import binascii
n = int('0110100001101001001000000111010101110011', 2)
binascii.unhexlify('%x' % n)
>>> print ''.join(chr(int(b[i:i+8], 2)) for i in range(0, len(b), 8))
'hi us'

将 b 分成 8 个块,使用基数 2 解析为 int,转换为 char,将结果列表作为字符串加入。