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

在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就不会有这样的问题。


临时解决方法:

代码中加入如下三行

  1. import sys  

  2. reload(sys)  

  3. sys.setdefaultencoding('utf8')  

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

内容如下:

  1. # encoding=utf8  

  2. import sys  


  3. reload(sys)  

  4. sys.setdefaultencoding('utf8')  

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章