俄罗斯在Python 2.7版

# -*- coding: utf-8 -*- 

a='Привет'

print a

b=[]

b.append(a)

print b

下面列出的代码,它必须打印Привет俄罗斯在Python 2.7版

['Привет'] 

但是当我运行这段代码,它打印Привет

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

不幸的是,它不打印我需要的东西。任何建议如何做到这一点?

回答:

您看到的行为是正常。你有一个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和字节串或任何许多关于编解码器之间的区别,我敦促您阅读:

  • The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)由Joel Spolsky的

  • 的Python Unicode HOWTO

  • Pragmatic Unicode由斯内德尔德

,然后再继续。

回答:

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

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

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

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

以上是 俄罗斯在Python 2.7版 的全部内容, 来源链接: utcz.com/qa/263077.html

回到顶部