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