我有一个包含英文和非英文字符的UTF-8编码字符串。我想将此字符串转换为单个字符列表。当我只使用list()时,一些非英文字母在中间切割。例如:
In [200]: s = "abאב"
In [201]: print s
abאב
In [202]: l = list(s)
In [203]: print l
['a', 'b', '\xd7', '\x90', '\xd7', '\x91']
In [204]: print l[2]
�
In [205]: print l[2]+l[3]
א
l [2]打印乱码,因为字母א的编码是\ xd7 \ x90而不是\ xd7。我怎样才能充分分割字符串?
感谢。
答案 0 :(得分:1)
我假设您运行Python 2.7
如果你将使用UTF-8工作很多,你应该考虑运行Python 3。 在Python 3中,它可以正常运行。
print(l)
['a', 'b', 'א', 'ב']
print(l[2])
א
答案 1 :(得分:1)
我假设你使用的是python2:
>>> list(s.decode('utf8'))
[u'a', u'b', u'\u05d0', u'\u05d1']