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')
网友评论