我有一个简单的dict
对象,我试图在它运行后将其存储在数据库中pickle
。似乎 Django 不喜欢尝试对这个错误进行编码。我已经检查过 MySQL,查询甚至在抛出错误之前都没有到达那里,所以我不认为这是问题所在。dict
我存储的看起来像这样:
{
'ordered': [
{ 'value': u'First\xd1ame Last\xd1ame',
'label': u'Full Name' },
{ 'value': u'123-456-7890',
'label': u'Phone Number' },
{ 'value': u'user@nowhere.org',
'label': u'Email Address' } ],
'cleaned_data': {
u'Phone Number': u'123-456-7890',
u'Full Name': u'First\xd1ame Last\xd1ame',
u'Email Address': u'user@nowhere.org' },
'post_data': <QueryDict: {
u'Phone Number': [u'1234567890'],
u'Full Name_1': [u'Last\xd1ame'],
u'Full Name_0': [u'First\xd1ame'],
u'Email Address': [u'user@nowhere.org'] }>,
'user': <User: itis>
}
抛出的错误是:
“utf8”编解码器无法解码位置 52-53 中的字节:无效数据。
\xd1
位置 52-53 是腌制数据中 (Ñ) 的第一个实例。
到目前为止,我已经在 StackOverflow 上进行了研究,发现了一些问题,其中对象的数据库编码是错误的。这对我没有帮助,因为还没有 MySQL 查询。这发生在数据库之前。在搜索腌制数据的 unicode 错误时,Google 也没有太大帮助。
可能值得一提的是,如果我不使用 Ñ,这段代码可以正常工作。