Python - 将非英语UTF-8编码的字符串转换为字符列表

时间:2017-08-23 09:18:44

标签: python encoding utf-8

我有一个包含英文和非英文字符的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。我怎样才能充分分割字符串?

感谢。

2 个答案:

答案 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']