将Unicode转换为二进制

问题描述 投票:3回答:1

我试图通过使用utf8将阿拉伯文本转换为this answer here编码的字节,然后转换为二进制。

首先,我使用了示例中的代码:

'{:b}'.format(int(u'سلام'.encode('utf-8').encode('hex'), 16))

但我得到了这个错误:

AttributeError: 'bytes' object has no attribute 'encode'

我也删除了.encode('hex')但仍然给出了同样的错误。

有没有办法将qazxsw poi代码转换为二进制代码,反之亦然?

python python-3.x utf-8
1个回答
1
投票

这个怎么样:

utf8

这将迭代编码的>>> ''.join('{:08b}'.format(b) for b in 'سلام'.encode('utf8')) '1101100010110011110110011000010011011000101001111101100110000101' 对象,在每次迭代中,您将获得0..255范围内的整数。然后整数以二进制表示法格式化,零填充最多8位。然后用bytes将所有东西粘在一起。

反过来,你链接的问题答案中给出的方法可以适用于Python 3如下(str.join()是上面例子的输出,即一个0和1的s):

str
© www.soinside.com 2019 - 2024. All rights reserved.