Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat \'Nilai Rentetan Salah\' Semasa Menyimpan Unikod dalam Django dan MySQL?
Ralat Nilai Rentetan Tidak Betul Semasa Menyimpan Aksara Unikod dalam MySQL dengan Django
Apabila cuba menyimpan rentetan unikod ke model auth_user dalam Django, anda mungkin menghadapi mesej ralat berikut:
Incorrect string value: '\xC4\x8Dius' for column 'last_name' at row 104
Potensi Punca
Ralat ini biasanya disebabkan oleh perkara berikut:
Penyelesaian
Untuk menyelesaikan isu ini, ikut langkah berikut:
Tukar pangkalan data, jadual dan lajur untuk menggunakan aksara utf8mb4 set:
CREATE DATABASE db_name CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
ALTER TABLE auth_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Nyatakan set aksara dalam tetapan Django:
Dalam fail tetapan Django (settings.py) , tambah yang berikut baris:
DATABASES = { 'default': { 'ENGINE':'django.db.backends.mysql', ... 'OPTIONS': {'charset': 'utf8mb4'}, } }
Pertimbangan Tambahan
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Nilai Rentetan Salah' Semasa Menyimpan Unikod dalam Django dan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!