将Unicode转换为西里尔文

时间:2016-10-12 11:25:24

标签: python unicode encoding latin

我有Unicode列表:

words
[u'\xd1', u'\xd0\xb0', u'\xd0\xb8', u'\u043e', u'\xd1\x81', u'-', u'\xd0\xb2', u'\u0438', u'\u0441', u'\xd0\xb8\xd1', u'\xd1\x83', u'\u0432', u'\u043a', u'\xd0\xba', u'\xd0\xbf\xd0\xbe', u'|', u'search', u'\xd0\xbd\xd0\xbe', u'25', u'in', u'\xd0\xbd\xd0\xb0', u'\u043d\u0430', u'\xd0\xbd\xd0\xb5', u'\xd0\xbe\xd0\xb1', u'\xd0\xbe\xd1\x82', u'\u043f\u043e', u'google', u'\xd0\x92', u'---', u'##']
[u'\u043e', u'\u0438', u'-', u'\u0441', u'\u0432', u'\u043a', u'\u0430', u'ebay', u'\u043d\u0430', u'\u0443', u'\u0442\u043e', u'"', u'33', u'**', u'ebay.', u'\u043f\u043e', u'jeans', u'at', u'\u0442\u043e\u0432\u0430\u0440', u'\u0434\u0436\u0438\u043d\u0441\u044b', u'\u0442\u043e\u0432\u0430\u0440\u043e\u0432', u'\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f', u'\u043d\u0430\u0437\u0432\u0430\u043d\u0430', u'\u043e\u0442', u'tan', u'\u0432\u044b', u'altanbataev0', u'32', u'\u043d\u043e', u'&']
[u'\u043e', u'/', u'\u0430', u'-', u'\u0438', u'\u0441', u'\u0432', u'\u043a', u'\u0443', u'\u044f', u'\u043d\u043e', u'\u043f\u043e', u'\u0442\u043e', u'\u043d\u0430', u'\u043e\u0442', u'!', u'\u043d\u0435', u'"', u'\u043d\u0438', u'\u043a\u043e', u'\u0442\u0435\u0441\u0442', u'\u0437\u0430', u'\u043e\u043d']

我试过[x.encode('latin-1') for x in lst] 但它返回:

UnicodeEncodeError: 'latin-1' codec can't encode character u'\u043e' in position 0: ordinal not in range(256)

我还尝试了cp1252utf8,但它们也会返回错误。

1 个答案:

答案 0 :(得分:1)

你已经拥有俄语(至少有一部分),你只需要在支持俄语字符的IDE /终端上打印字符串,而不是列表。这是一段摘录,在UTF-8终端上用Python 2.7打印:

L = [u'\u0442\u043e\u0432\u0430\u0440', u'\u0434\u0436\u0438\u043d\u0441\u044b']

print L

for s in L:
    print s

输出:

[u'\u0442\u043e\u0432\u0430\u0440', u'\u0434\u0436\u0438\u043d\u0441\u044b']
товар
джинсы