解决UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11

来源:互联网 发布:数据库基础教程判断题 编辑:程序博客网 时间:2024/06/09 08:54

原文链接:这里写链接内容
在windows下写的python脚本,放到linux下运行,直接报
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-11: ordinal not in range(128)

原因是python2.7在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错,不过在python3就不会有这样的问题。

临时解决方法:
代码中加入如下三行

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

如果不想在每个文件中都加这三行,就在python的Lib\site-packages文件夹下新建一个sitecustomize.py
内容如下:

#encoding=utf8  import sys  reload(sys)  sys.setdefaultencoding('utf8')  

这样的话,系统在python启动的时候,自行调用该文件,设置系统的默认编码

0 0