近期在使用python是出现编码问题:“UnicodeEncodeError: 'ascii' codec can't encode characters ”
case:
通过sqlalchemy连mysql做orm,连接数据没有问题charset=utf8,编码是utf-8的,在把数据库中的中文字读取到python对象中时报错“UnicodeEncodeError: 'ascii' codec can't encode characters ” 有点纠结,小问题总结一下。
处理方法一:
在我的应用启动文件startup.py 中加入如下代码
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
处理方法二:
1、由于Python在载入site模块时会删除setdefaultencoding()函数,故不能以在脚本开头调用此函数的方式指定默认编码;sitecustomize.py是一个python会自动导入的模块,故应当使用这个文件指定默认编码;
2、我这里需要使用utf-8作默认编码器,sitecustomize.py的内容如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
sys.setdefaultencoding('utf-8')