У меня есть простой dict
объект, который я пытаюсь сохранить в базе данных после того, как он прошел через pickle
.Кажется, что Джанго не любит пытаться закодировать эту ошибку.Я проверил с 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: неверные данные.
Позиция 52-53 - это первый экземпляр \xd1
(С) в выбранных данных.
До сих пор я копался в StackOverflow и нашел несколько вопросов, где кодировка базы данных для объектов была неправильной.Это не помогает мне, потому что нет запроса MySQL еще.Это происходит перед базой данных.Google также мало помогал при поиске ошибок Юникода в маринованных данных.
Вероятно, стоит упомянуть, что если я не использую С, этот код работает нормально.