UnicodeEncodeError: 'latin-1' codec can't encode characters in position 121-123: ordinal not in r...

问题描述:在接收模板post过来的表单时,竟然无法携带相关信息重定向,并报如题错误。

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 121-123: ordinal not in range(256)

表单
视图
报错信息

解决方案:编码问题的确很让人头疼。为解决这个问题,我把数据库表,前端界面,后代逻辑代码全都拉了一遍,都改成了utf-8,但是效果不好。然后看到关于python之MySQLdb的编码 - Waleking的专栏 - CSDN博客时,我不禁一句卧槽,好有道理啊,就想去改mysqldb。不过好像是直接在setting.py里配置的database,并没有直接调用mysql(其实是找不到那个文件……)。尽管如此,深受启发,注意到报错信息的最后一句:

File "/home/tf/anaconda3/envs/tensorflow/lib/python3.5/wsgiref/headers.py", line 142, in __bytes__

return str(self).encode('iso-8859-1')

要不我也改了?

/home/tf/anaconda3/envs/tensorflow/lib/python3.5/wsgiref/headers.py

最后,嘿嘿!


重定向成功

问题原因:具体没搞清楚,应该是哪里编码没搞清楚,解决方案也是饮鸩止渴,希望后面项目不会崩。

参考文献:关于python之MySQLdb的编码 - Waleking的专栏 - CSDN博客

另外看到一篇讲编码区别的,比较明白,也码上:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431664106267f12e9bef7ee14cf6a8776a479bdec9b9000

你可能感兴趣的:(UnicodeEncodeError: 'latin-1' codec can't encode characters in position 121-123: ordinal not in r...)