如何将字符串的二进制表示转换回 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,将结果列表作为字符串加入。
我无法找到以下问题的答案: 从字符串开始,将其转换为二进制表示形式。如何取回 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,将结果列表作为字符串加入。