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 のバイトをデコードできません: 無効なデータです。
位置 52-53 は、\xd1
ピクルされたデータ内の (Ñ) の最初のインスタンスです。
これまで、StackOverflow を掘り下げて、オブジェクトのデータベース エンコーディングが間違っているといういくつかの質問を見つけました。MySQL クエリがまだないため、これは役に立ちません。これは、データベースの前に発生しています。また、ピクルス化されたデータの Unicode エラーを検索する際にも、Google はあまり役に立ちませんでした。
Ñ を使用しない場合、このコードは問題なく動作することはおそらく言及する価値があります。