python 2.7 - 如何用utf-8字符打印?

时间:2014-11-11 00:01:07

标签: python utf-8

我正在使用python 2.7版本,我需要知道如何打印utf-8字符。谁能帮我? - >我已经尝试过#编码:iso-8859-1 - * - 在上面, - >使用编码如打印“nome doseuchápa”.encode('iso-8859-1')也不起作用甚至 - >使用print u“Nâo”不起作用

4 个答案:

答案 0 :(得分:0)

更完整的回复。

字符串在Python 2中有两种类型,str和unicode。

使用str时,您正在使用字节,因此您可以将它们直接写入stdout等文件。

使用unicode时,必须先将其序列化或编码为字节,然后再写入文件。

那么,这里发生了什么? print "nome do seu chápa".encode('iso-8859-1')

你有字节,但是你尝试对它们进行编码,因此Python 2首先将它们解码在你的背后,然后使用所请求的标准进行编码。如果幸运的话,这可能有用,或产生胡言乱语。

现在,执行以下操作时:print u"Nâo".encode('utf-8')

你告诉Python 2你从Unicode开始,然后它将编码它而不会出现问题解码。

Python 3解决了这个肮脏的问题。

答案 1 :(得分:0)

您确定将此行正确放在文档的顶部吗?

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

另外,我不知道在这个特殊问题上iso-or utf有什么区别,但我在母语和一些技术方面遇到了latin1的麻烦,所以我推荐第二个。

答案 2 :(得分:0)

我得到了答案:我的控制台需要重新启动。我使用Spyder(来自Python x,y)进行开发并发现此错误,所以要小心。

更新:Spyder控制台看起来很糟糕,因为为了让它工作,我不得不使用string.encode(' latin1')和(现在这里抓住了)打开一个新的控制台!如果我尝试重用已经打开的控制台,那么特殊字符就不会起作用。

答案 3 :(得分:0)

您有两种选择:

1)在代码的第一行添加以下行:

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

2)用utf-8字符把你的字符串开头:

 u'não vou esqueçer mais de usar o u no começo'