Django で Unicode 文字列を保存するときに不正な文字列値エラーが発生する
Django の auth_user モデルに Unicode 文字列を保存しようとすると、「文字列値が正しくありません」エラー。このエラーは通常、MySQL の文字セットと照合順序の設定が原因で発生します。
MySQL の文字セットと照合順序
MySQL は UTF-8 文字セットをサポートしていますが、文字数は3バイト制限。これは、標準の UTF-8 文字セットを使用して MySQL に 4 バイトの Unicode 文字を保存できないことを意味します。
問題の説明
Django が保存しようとしたときUnicode 文字列を auth_user モデルに変換すると、MySQL はそれらを UTF-8 文字セットに変換しようとします。ただし、文字列に 4 バイト文字が含まれている場合、変換は失敗し、「文字列値が正しくありません」エラーが発生します。
解決策
この問題を解決するには、次の手順を実行します。 can:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', ... 'OPTIONS': {'charset': 'utf8mb4'}, } }
追加考慮事項
以上がDjango で Unicode 文字列を保存するときに発生する「文字列値が正しくありません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。