我有一个程序,它接受一个字符串,用它的字节表示形成一个列表,然后将列表转换回字符串。如果字符串仅包含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