俄语在python 2.7中列出

时间:2013-07-08 08:06:24

标签: python python-2.7 utf-8

# -*- coding: utf-8 -*-
a='Привет'
print a
b=[]
b.append(a)
print b

这是代码,必须打印Привет

['Привет']

但是当我运行此代码时,它会打印Привет

['\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82']

不幸的是,它不打印我需要的东西。有什么建议怎么办?

2 个答案:

答案 0 :(得分:7)

您看到的行为是正常。你有一个UTF-8编码的字节字符串,在打印列表时,Python总是以最便携的形式显示Python字符串文字等字符串。

您确实想使用Unicode值,并从列表中打印单个项目:

# -*- coding: utf-8 -*-
a = u'Привет'  # Unicode literal
print a
b = []
b.append(a)
print b[0]     # print individual item

如果你还不知道Unicode和字节串之间的区别或者有关编解码器的任何内容,我建议你阅读:

继续之前。

答案 1 :(得分:2)

打印列表时,Python将对其中的元素使用repr函数。

Python 2.x中字符串的repr函数将使其100%ascii兼容,以避免终端中的错误编码等问题。

您必须迭代列表并打印每个元素。

另外,我建议你使用unicode字符串作为文本(如果不是ascii则更重要)。