Python设置系统默认编码

2019-05-25 23:32:50 浏览数 (1)

版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://cloud.tencent.com/developer/article/1434109

Python默认的系统编码为ASCII编码,在日程的编码中经常会碰到Python的编码问题,为了一劳永逸的解决这个问题,可以将Python的系统默认编码设置为utf-8

  • 常见错误
代码语言:javascript复制
UnicodeEncodeError: 'ascii' codec can't encode characters in position
  • 查看系统默认编码
代码语言:javascript复制
import sys
sys.getdefaultencoding()  
  • 修改系统默认编码 在site-packages文件夹下建立sitecustomize.py文件,文件内容如下:
代码语言:javascript复制
import sys  
sys.setdefaultencoding('utf8')
  • site-packages的目录

anaconda目录通常为yourpath/anaconda/lib/python2.7/site-packages

Mac目录通常为/usr/local/lib/python2.7/site-packages

  • Python3 在Python3中调用print 时同样会碰到编码问题,查看sys.getdefaultencoding()发现编码是utf-8,没问题。此时可能的问题是sys.stdout 编码的问题。解决方案如下:
代码语言:javascript复制
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')

# or
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())

0 人点赞