我无法找到以下问题的答案: 从字符串开始,将其转换为二进制表示。你如何在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()
,但不知道在这种情况下我应该使用哪种编码。
答案 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,将结果列表作为字符串连接。