解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误

django想读取入库的nginx配置,然后写入到配置文件中


代码

出现报错:

'ascii' codec can't encode


代码逻辑应该没什么问题,断点打印能获取显示配置内容,所以定位问题在写入配置文件时候出错,应该就是编码问题了。Unicode编码与ASCII编码的不兼容,其实这个Python脚本文件是由utf-8编码的,同时mysql数据库存取的也是UTF-8格式,字符串在Python内部的表示是unicode编码基本上是ascii编码方式,由此Python自然调用ascii编码解码程序去处理字符流,当字符流不属于ascii范围内,就会抛出异常(ordinal not in range(128))。

解决:

加入3行代码

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容