在编码过程中,出现奇怪的UnicodeEncodeError问题:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 52-54: ord
inal not in range(128)
尝试Decode和Encode多次未解决!百思不得其解。
1、之前,出现该问题,只要将文件另存为UTF-8 并在py文件头设置
#coding=utf-8
问题即得到解决!
2、检查Hex代码和其他py文件没有差异
3、因为不能具体定位到什么位置出现UnicodeEncodeError问题,故手工
一个一个Models class进行copy到新的model文件中,发现问题尽然出现在
models.ForeignKey的verbose_name上。使用参数位置定义verbose name属性。
如下:
templateid = models.ForeignKey(u'编号',Templates)
修改如下:
templateid = models.ForeignKey(Templates, verbose_name = u'模板编号')
问题即可解决。并在多次其他相同ForeignKey Field中重复出现和解决,得到确认。
该问题碰到后,很难去定位和解决,网上也无该问题的相似解决方案。故,值得一记。个人觉得,可能是django在verbose参数中对中文支持的一个BUG。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/88305/viewspace-742187/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/88305/viewspace-742187/
本文详细记录了解决在Python Django框架中遇到的UnicodeEncodeError问题的过程,问题源于ForeignKeyField的verbose_name参数使用中文导致编码错误。通过将verbose_name参数从使用u'编号'改为指定模型类名并添加中文描述,成功解决了编码问题。
1345

被折叠的 条评论
为什么被折叠?



