Python如何设置utf-8为默认编码的问题
作者:子不语
这篇文章主要介绍了Python如何设置utf-8为默认编码的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Python设置utf-8为默认编码
python默认的编码是ASCII,通过sys.getdefaultencoding()可以查看默认编码。
当程序中出现非asc编码时,python的处理常常会有乱码的错误,一般有如下几种方法:
代码临时更改
import sys reload(sys) sys.setdefaultencoding('utf8')
只在程序执行时临时生效,系统默认编码并没有改变。
此时如果还有编码错误 ,需要用到encode(‘utf-8’),将字符串显式声明编码。
字符串.encode('utf-8')
目录文件更改
创建一个叫 sitecustomize.py的文件,因为python在启动的时候会去加载这个文件,如果要修改一些启动的变量就可以把操作写在这个文件。
- 第一步:
在python安装目录的Lib\site-packages文件夹下新建一个sitecustomize.py文件
- 第二步:
在sitecustomize.py填写如下代码
# encoding=utf8 import sys reload(sys) sys.setdefaultencoding('utf8')
python2.7永久地将默认编码设置为utf-8
网上推荐了两种方法
- 第一个方法<不推荐>:
编辑site.py, 修改setencoding()函数, 强制设置为 utf-8
- 第二个方法<推荐>:
增加一个名为 sitecustomize.py, 推荐存放的路径为 site-packages 目录下
sitecustomize.py 是在 site.py 被import 执行的,因为 sys.setdefaultencoding() 是在 site.py 的结尾处被删除的,所以,可以在 sitecustomize.py 使用 sys.setdefaultencoding().
#file name: sitecustomize.py import sys sys.setdefaultencoding(‘utf-8')
既然 sitecustomize.py 能被自动加载, 所以除了设置编码外, 也可以设置一些其他的东西.
实践
- python2.7 sys.setdefaultencoding()报错,说不存在setdefaultencoding
- 但是这个问题大多数在python3 中抛出
- 把site.py 中的del setdefaultencoding的代码注释了任然无效
- 最后直接修改site.py 中setencoding()函数的encoding=‘utf-8’
- 重启程序,欧克,不再报编码问题
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。