python - 如何将二进制字符串转为字节?

标签 python unicode utf-8 utf

如果我将字母“à”编码为 UTF-8,我会得到以下结果:

'à'.encode('utf-8')
>> b'\xc3\xa0'

现在,我想将字节数组中的“à”转换为二进制字符串,然后将其转回“à”。为此,我执行以下代码:

byte = bytearray('à','utf-8')
for x in byte:
    print(bin(x))

我得到0b110000110b10100000,即195和160。然后,我将它们融合在一起并取出0b部分。现在我执行这段代码:

s = '1100001110100000'
value1 =  s[0:8].encode('utf-8')
value2 =  s[9:16].encode('utf-8')
value = value1 + value2
print(chr(int(value, 2)))
>> 憠

无论我如何开发后面的部分,我都会得到符号,并且似乎永远无法找回我的“à”。我想知道这是为什么?我怎样才能得到一个“à”。

最佳答案

>>> bytes(int(s[i:i+8], 2) for i in range(0, len(s), 8)).decode('utf-8')
'à'

这有多个部分。 bytes 构造函数根据整数序列创建字节字符串。整数是使用以 2 为基数的 int 字符串形成的。range 与切片相结合,一次剥离 8 个字符。最后decode将这些字节转换回Unicode字符。

关于python - 如何将二进制字符串转为字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53422008/

相关文章:

python - 即使重新安装 matplotlib、libpng 和 brew 后,导入 pylab 也会失败

linux - 使用 unicode 字符的 ASCII 表

python - pandas to_sql 给出 unicode 解码错误

java - 如果我将 .svn 目录从 ASCII 转换为 UTF-8 会怎样?

php - PDO OCI 截断大型多字节 CLOB

php - PDO 检索数据时的 utf8、utf8mb4、utf8_general_ci 问题

python - MySQLdb : how to connect with phpMyAdmin

Python glob 多种文件类型

python - 使用单图像 tensorflow keras 进行预测

python 瓶 : UTF8 path string invalid when using app. mount()