UnicodeDecodeError不明觉厉
使用 mysql 的时候,链接的时候 ,没有声明 charset='utf8'
所以在html试图向后台post中文字符的时候,报错了,说 'latin-1' codec can't encode byte in position :
在我往链接数据库那句的参数加了 charset = 'utf8' 之后,情况有变,居然什么都打不开了,提示的是:
[python]
"unicodedecodeerror: 'ascii' codec can't decode byte in position : ordinal not in range(128)"
当时真的太不冷静,都没有仔细去思考这个问题,马上就开始乱谷歌,结果可想而知。
一个问题,如果你不是有至少2分了解,就算你找到教程照着做解决了,下次你还是会碰壁。
所以写这文章是为了提醒自己,也是想可能会对同样在网上乱搜的同好们有所帮助吧。
我绝望了,尝试向sae的管理员po了一个建议(建议它改decoder,我也真是好傻)
然后想了一下,修复之。现在ok了。
过了不久(从我po but report 到管理员回复,10分钟,在此我深感欣慰),新浪的管理员回复了,提的建议跟上面的文章一模一样:
修改.py文件里的默认编码
[python]
import sys
reload(sys)
sys.setdefaultencoding('utf8')
至此问题算是告一段落。
以下是总结时间。
想想整个流程,python从数据库select数据,用render的方法提取html模板,渲染之,然后display给用户,用户post数据到后台,后台再处理,放进数据库。
下一篇: Python 时间常用函数及结构