在编码过程中,出现奇怪的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/