将utf-8字符串转换为字节并返回Python 2.7

时间:2016-12-07 17:12:21

标签: python string python-2.7 utf-8 python-unicode

我有一个程序,它接受一个字符串,用它的字节表示形成一个列表,然后将列表转换回字符串。如果字符串仅包含ASCII字符,那么这很容易:

def messagetobitlist(message):

bitlist = []

for i in message:
    for x in (format(ord(i), '08b')):
        bitlist.append(int(x))
return bitlist

然后我只需将其转换回unichr(或者chr也可以)。

但我希望扩展代码并使其能够接受带重音符和外来字符的字符串。为此,我尝试将其编码为UTF-8并创建位列表,但是当我尝试将其转换回来时,它不起作用,因为字符用不同的字节数表示,并且代码无法区分事先是否只需要读取一个字节或更多字节。我尝试用4个字节对每个字符进行编码(因为它是UTF-8的最大值),但这确实看起来确实浪费了空间而且它无论如何都不起作用。

是否有一个解决方案可以在保持空间保守性的同时执行此功能?

编辑:哎呀,写了Python 3而不是Python 2.7

0 个答案:

没有答案