繁体   English   中英

Python 2.7-如何使用utf-8字符进行打印?

[英]python 2.7 - how to print with utf-8 characters?

我正在使用python 2.7版,我需要知道如何打印utf-8字符。 谁能帮我? ->我已经尝试将#编码:iso-8859-1-*-放在最上面,->使用像打印“ nome do seuchápa”这样的编码。encode('iso-8859-1')也不起作用,甚至->使用打印u“Nâo”无效

更完整的回应。

字符串在Python中有两种类型,即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解决了这种麻烦。

您确定将这一行正确放置在文档顶部吗?

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

另外,我不知道iso-或utf在这个特定问题上有什么区别,但是我在母语中遇到了latin1的麻烦,并且遇到了一些技术问题,因此我推荐第二个。

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

更新:Spyder控制台似乎很烂,因为要使其正常工作,我必须使用string.encode('latin1')和(现在是要抓住的地方)打开一个新控制台! 如果尝试重用已经打开的控制台,则特殊字符将不起作用。

您有两种选择:

1)将代码放在第一行:

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

2)将u放在以utf-8字符开头的字符串的开头:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM