2024-06-16 11:24:58 发布
网友
我正在使用Python2.7版,我需要知道如何打印utf-8字符。有人能帮我吗? ->;我已经试过把编码:iso-8859-1-*-放在最前面, ->;使用encode like print“nome do seu chaápa”。encode('iso-8859-1')也不起作用,甚至 ->;使用print u“N–o”不起作用
更完整的回答。
在python2中,字符串有两种类型:str和unicode。
使用str时,使用的是字节,因此可以直接将它们写入stdout之类的文件。
使用unicode时,在写入文件之前,必须将其序列化或编码为字节。
那么,这里发生了什么?print "nome do seu chápa".encode('iso-8859-1')
print "nome do seu chápa".encode('iso-8859-1')
你有字节,但是你试图编码它们,所以Python2首先在背后解码,然后使用请求的标准进行编码。如果幸运的话,这可能会奏效,或者产生胡言乱语。
现在,在执行以下操作时:print u"Nâo".encode('utf-8')
print u"Nâo".encode('utf-8')
您告诉python2从Unicode开始,这样它就可以对其进行编码而不会出现问题的解码。
Python3解决了这个问题。
你确定把这一行放在文件的最上面吗?
# -*- coding: utf-8 -*-
另外,我不知道iso和utf在这个问题上有什么区别,但是我在母语和一些技术方面遇到了一些问题,所以我推荐第二个。
我得到了答案:我的主机需要重启。我使用Spyder(来自pythonx,y)进行开发,但出现了这个错误,所以要小心。
更新:Spyder控制台看起来很糟糕,因为要让它工作,我不得不使用字符串.编码('latin1')和(现在是关键)打开一个新的控制台!如果我试图重用我已经打开的控制台,特殊字符就不起作用了。
更完整的回答。
在python2中,字符串有两种类型:str和unicode。
使用str时,使用的是字节,因此可以直接将它们写入stdout之类的文件。
使用unicode时,在写入文件之前,必须将其序列化或编码为字节。
那么,这里发生了什么?
print "nome do seu chápa".encode('iso-8859-1')
你有字节,但是你试图编码它们,所以Python2首先在背后解码,然后使用请求的标准进行编码。如果幸运的话,这可能会奏效,或者产生胡言乱语。
现在,在执行以下操作时:
print u"Nâo".encode('utf-8')
您告诉python2从Unicode开始,这样它就可以对其进行编码而不会出现问题的解码。
Python3解决了这个问题。
你确定把这一行放在文件的最上面吗?
另外,我不知道iso和utf在这个问题上有什么区别,但是我在母语和一些技术方面遇到了一些问题,所以我推荐第二个。
我得到了答案:我的主机需要重启。我使用Spyder(来自pythonx,y)进行开发,但出现了这个错误,所以要小心。
更新:Spyder控制台看起来很糟糕,因为要让它工作,我不得不使用字符串.编码('latin1')和(现在是关键)打开一个新的控制台!如果我试图重用我已经打开的控制台,特殊字符就不起作用了。
相关问题 更多 >
编程相关推荐