美文网首页
Python2.x的中文显示方法

Python2.x的中文显示方法

作者: 上发条的树 | 来源:发表于2016-06-02 17:38 被阅读465次

Python的默认编码

Python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,Python的处理常常会报这样的错:

UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),

Python没办法处理费ascii编码的,此时需要自己设置将Python的默认编码,一般设置为utf-8的编码格式。
查询系统默认编码可以在解释器中输入以下命令:

>>> import sys
>>> sys.getdefaultencoding() 
'ascii'

临时更改编码

设置默认编码时使用:

>>> sys.setdefaultencoding('utf8')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'setdefaultencoding'

发现报错。
需要先执行reload(sys),再执行以上命令就可以顺利通过了:

>>> reload(sys)
<module 'sys' (built-in)>
>>> sys.setdefaultencoding('utf8')
>>> sys.getdefaultencoding()
'utf8'

此时在执行sys.getdefaultencoding()就会发现编码已经被设置为utf8的了,但是在解释器里修改的编码只能保证当次有效,在重启解释器后,会发现,编码又被重置为默认的ascii了,那么有没有办法一次性修改程序或系统的默认编码呢?

两种方法设置Python的默认编码

1、在程序中加入以下代码:

import sys 
reload(sys) 
sys.setdefaultencoding('utf8')  

2、在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:

# encoding=utf8 

import sys   
reload(sys) 
sys.setdefaultencoding('utf8')  

重启python解释器,执行sys.getdefaultencoding(),发现编码已经被设置为utf8的了,多次重启之后,效果相同,这是因为系统在python启动的时候,自行调用该文件,设置系统的默认编码,而不需要每次都手动的加上解决代码,属于一劳永逸的解决方法。

还有一种解决方案是在程序中所有涉及到编码的地方,强制编码为utf8,即添加代码encode("utf8"),这种方法并不推荐使用,因为一旦少写一个地方,将会导致大量的错误报告.

ps:方法2中,如何找到python的Lib\site-packages文件夹?方法如下:

>>> import sys
>>> import pprint
>>> pprint.pprint(sys.path)
['',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
 '/Library/Python/2.7/site-packages']

可以看到,最后一个即为我们要寻找的文件夹路径。

相关文章

  • Python2.x的中文显示方法

    Python的默认编码 Python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,Python...

  • Matplotib绘图

    安装Matplotib绘图pip install matplotib 基础绘图 显示中文 显示中文4种方法 查看本...

  • python2.x与python3.x

    python3.x可以兼容中文,python2.x则不行

  • matplotlib(四)-中文乱码等问题记录

    一、matplotlib 图片中文显示乱码,中文显示不出来 解决方法: 平台:windows,python2.7 ...

  • Matplotlib库基础-显示中文

    主要内容:设置Matplotlib库的显示中文的方法。 pyplot中默认不支持显示中文,但是可以通过修改rcPa...

  • Python之发送邮件(中文昵称)实现办法

    发送邮件想把发送人显示为昵称 发送英文昵称(最简单) 发送中文昵称方法1 发送中文昵称方法2

  • IDA 7.0显示中文的方法

    选择需要显示的中文 Alt+A,选择Unicode C-style 将选择位置的字符显示为中文 若打开ida vi...

  • CentOS系统语言设置

    1.安装的时候安装为中文,现在通过SecureCRT远程链接,中文显示乱码。 解决方法:SecureCRT的修改,...

  • 树莓派设置支持中文

    默认的树莓派系统是不支持中文显示的,打开网页看到一大堆的乱码,按照以下方法可以设置树莓派支持中文显示和中文输入法 ...

  • python画图

    画图中文乱码 Python3 matplotlib 画图时中文会显示成乱码解决方法一:plt.rcParams['...

网友评论

      本文标题:Python2.x的中文显示方法

      本文链接:https://www.haomeiwen.com/subject/sajkdttx.html