在Python中解决unicode输出

时间:2010-10-22 08:06:16

标签: python unicode encoding unicode-string

我写了一些代码,它们向Google发送查询并返回查询结果。显然,检索的内容是unicode格式,所以当我把它们放在一个列表中并打印这个列表(整个列表一起而不是成员)时,一个恼人的额外'u'总是落后于所有成员。这个清单......我怎么能摆脱它们?我试图将整个文本转换为ascii,但因为文本中有一些非ascii字符(不同语言)失败,现在你知道我应该做些什么来获得更好的输出吗?我希望这个额外的'你'不会有任何麻烦。感谢

2 个答案:

答案 0 :(得分:5)

而不是:

>>> print your_list
[u'foo', u'bar']

使用:

>>> print '\n'.join(your_list)
foo
bar

如果您希望将所有内容保存在一行,则可以使用', '代替'\n'作为分隔符。

如果您尝试在Windows控制台中显示Unicode字符,也可能会出现问题。如果是这样,您可以使用例如IDLE来显示Unicode字符。或者,您可以转换为ASCII并忽略ASCII中不存在的字符:

print '\n'.join(x.encode('ascii', 'ignore') for x in your_list)

答案 1 :(得分:1)

如果您要对输出执行任何有意义的操作,则必须确定所需的输出编码。抛弃所有那些非ascii角色甚至不是第二个最好的解决方案。 决定适当的输出编码(例如,对于shell输出你的shell编码,对于web输出你的web编码,最好的全能者是UTF-8)并适当地编码:', '.join(x.encode('utf-a') for x in your_list)En-/Decoding