版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://cloud.tencent.com/developer/article/1434109
Python默认的系统编码为ASCII编码,在日程的编码中经常会碰到Python的编码问题,为了一劳永逸的解决这个问题,可以将Python的系统默认编码设置为utf-8
。
- 常见错误
UnicodeEncodeError: 'ascii' codec can't encode characters in position
- 查看系统默认编码
import sys
sys.getdefaultencoding()
- 修改系统默认编码
在
site-packages
文件夹下建立sitecustomize.py
文件,文件内容如下:
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
编码的问题。解决方案如下:
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
# or
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())