Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyelesaikan Ralat 'Nilai Rentetan Salah' MySQL dengan Aksara Bukan Latin?

Bagaimana untuk Menyelesaikan Ralat 'Nilai Rentetan Salah' MySQL dengan Aksara Bukan Latin?

DDD
Lepaskan: 2024-12-14 20:55:17
asal
705 orang telah melayarinya

How to Solve MySQL's

Mengatasi Ralat "Nilai Rentetan Salah" dalam MySQL

Ralat "nilai rentetan tidak betul" timbul apabila MySQL menemui data yang tidak mematuhi kepada pengekodan aksara yang ditentukan. Dalam konteks yang disediakan, ralat ini diperhatikan dengan e-mel yang mengandungi aksara bukan Latin walaupun menetapkan set aksara lajur kepada utf8 dan penyusunan kepada utf8_general_ci.

Punca dan Penyelesaian:

  1. Liputan Set Aksara Tidak Mencukupi: Set aksara utf8 yang digunakan dalam MySQL sebelum versi 5.5.3 hanya menyokong subset Unicode yang dipanggil Unicode Plane 1, yang termasuk aksara Latin, huruf Yunani dan beberapa simbol. Dalam versi MySQL terkini, utf8mb4 harus digunakan sebaliknya, yang menyokong sebahagian besar aksara Unicode. Menukar pangkalan data dan lajur jadual kepada utf8mb4 harus menyelesaikan isu.
ALTER DATABASE mydatabase CHARACTER SET = utf8mb4;
ALTER TABLE mytable MODIFY column_name TEXT CHARACTER SET utf8mb4;
Salin selepas log masuk
  1. Pengekodan Data Tidak Betul: Pastikan e-mel yang dimasukkan dikodkan dalam utf8. Semak sumber e-mel dan sahkan bahawa ia menggunakan pengekodan aksara ini. Jika ia tidak dikodkan dalam utf8, tukarkannya sebelum memasukkannya ke dalam pangkalan data.
  2. Salah Padanan Pengekodan Sambungan: Sahkan bahawa sambungan pangkalan data juga ditetapkan untuk menggunakan pengekodan utf8mb4. Ini boleh dilakukan dengan melaksanakan arahan berikut selepas mewujudkan sambungan:
SET NAMES 'utf8mb4';
SET CHARACTER SET utf8mb4;
Salin selepas log masuk

Kemungkinan Kesan Pembaikan:

Membetulkan "nilai rentetan yang salah " ralat akan membolehkan pangkalan data menyimpan dan mendapatkan semula aksara bukan Latin dalam e-mel dengan betul. Ini akan menghapuskan kehilangan data dan memastikan e-mel boleh diproses tanpa ralat. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa penukaran kepada utf8mb4 boleh menjejaskan operasi perbandingan dalam pangkalan data. Pengumpulan seperti utf8_general_ci adalah tidak peka huruf besar-besaran, tetapi dengan utf8mb4, ia menjadi sensitif huruf besar-kecil untuk aksara khas seperti 'ß' Jerman.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Nilai Rentetan Salah' MySQL dengan Aksara Bukan Latin?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan