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

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


解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误_第1张图片
代码

出现报错:

'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')

你可能感兴趣的:(解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误)