我声明:
#This file is using encoding:utf-8
...
class Buddy(models.Model):
name=models.CharField('ФИО',max_length=200)
...
。。。在模型.py. 管理.pysyncdb工作顺利。但是,当我进入管理界面并尝试添加一个新的好友时,我发现了一个djangunicodedecodeError,它说:“utf8”编解码器无法解码0-1位置的字节:无效数据。您传入了“\xd4\xc8\xce”(<;type'str'amp;ltr;)”。在
我使用的是sqlite3,所以所有的字符串都存储为用utf8编码的bytestrings。Django的编码也是utf8。看过django关于这个话题的文档,不知道。在
UPD:最终我发现了问题所在。结果是我用ANSI编码保存了我的源代码。在
解决方案:我用UTF-8保存了源代码,它产生了奇迹。在
首先,我将您的描述显式定义为Unicode字符串:
注意
u'ФИО'
中的“u”。在其次,您的模型中是否定义了
__unicode__()
函数?如果是,请确保它返回Unicode字符串。当管理接口尝试访问模型的unicode表示时,很可能会遇到此错误,而不是将其添加到数据库中时。如果从__unicode__()
返回非unicode字符串,则可能会导致此问题。在相关问题 更多 >
编程相关推荐