我在网上搜索了很多次,但一直没能找到一种方法来转换我的二进制字符串变量 X
X = "1000100100010110001101000001101010110011001010100"
转换为 UTF-8 字符串值。
我发现有些人正在使用诸如
b'message'.decode('utf-8')
但是,这种方法对我不起作用,因为据说“b”不存在,而且我不确定如何用变量替换“消息”。不仅如此,我还无法理解这种方法是如何工作的。有更好的选择吗?
那么如何将二进制字符串转换为文本字符串呢?
编辑:我也不介意 ASCII 解码
澄清:这是我特别希望发生的事情。
def binaryToText(z):
# Some code to convert binary to text
return (something here);
X="0110100001101001"
print binaryToText(X)
这将产生字符串……
hi
原文由 Dan 发布,翻译遵循 CC BY-SA 4.0 许可协议
看起来您正在尝试从每个字符的二进制字符串表示形式(位串)中解码 ASCII 字符。
您可以获取每块八个字符(一个字节),将其转换为整数,然后使用
chr()
将其转换为字符:假设字符串中编码的值是 ASCII,这将为您提供字符。您可以这样概括它:
如果您想将其保留在原始编码中,则无需进一步解码。通常您会将传入的字符串转换为 Python unicode 字符串,这可以像这样完成(Python 2):