1

ユーザーがデータを入力できるようにします。ユーザーは多くのコピー/貼り付けを行うようです。デコードエラーに直面しています。DjangoUnicodeDecodeError: ‘utf8’ codec can't decode byte 0×96 in position 22.

すべてのフォームに設定accept-charset="UTF-8"する方法はありますか?すべてのフォームは主に管理者によって生成されるため、管理者の設定を上書きする必要がありますか?

今後、これらの問題を回避するにはどうすればよいですか? デフォルトの AdminSite を変更したり、既に 100000 人のユーザーがいるデータベースを変更したりする必要がありますか?

4

1 に答える 1

0

accept-charsetがあなたの問題だとは思いません。デフォルトでは、すべてのフォームがUTF8データを受け入れます。次のようなステートメントの入力データを処理するコードを確認してください。

value = str(request.POST['user_input'])
value = 'prefix' + request.POST['user-input'] 
# instead of u'prefix' + request.POST['user-input']

これはよくある間違いで、ASCII以外の記号を含む可能性のあるユーザー入力にstr()を使用します。また、.pyファイルがUTF-8として保存されていることを確認してください。上記のエラーには多くの理由が考えられます...

于 2012-06-09T13:12:23.380 に答える