Django で Unicode 文字列を保存するときに発生する「文字列値が正しくありません」エラーを修正する方法
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:
- MySQL 文字セットを次のように変更しますutf8mb4: MySQL 5.5 以降では、4 バイト文字を許可する utf8mb4 文字セットがサポートされています。 utf8mb4 を使用してデータベース、テーブル、列を再作成します。
- Django 設定で文字セットを指定します: Django 設定ファイル (settings.py) に次の行を追加して、データベース接続:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', ... 'OPTIONS': {'charset': 'utf8mb4'}, } }
追加考慮事項
- VARCHAR フィールドのサイズを 191 文字に減らすことができない場合は、デフォルトで 4 バイトの Unicode 文字をサポートする PostgreSQL への切り替えを検討できます。
- utf8mb4 で MySQL を使用し続けたい場合は、Django にハックを適用して、許可される VARCHAR を増やす必要がある場合があります。 size.
- まれに、キー サイズを制限するデータベース構成によってこの問題が発生することもあります。 MySQL 構成を確認し、必要に応じて調整します。
以上がDjango で Unicode 文字列を保存するときに発生する「文字列値が正しくありません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?
