Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membetulkan Ralat 'Nilai Rentetan Yang Salah' MySQL dalam UTF-8?

Bagaimana untuk Membetulkan Ralat 'Nilai Rentetan Yang Salah' MySQL dalam UTF-8?

DDD
Lepaskan: 2024-12-11 03:30:12
asal
865 orang telah melayarinya

How to Fix MySQL's

Memahami Ralat "Nilai Rentetan Tidak Tepat" dalam UTF-8

Ralat "nilai rentetan yang salah" dalam MySQL berlaku apabila pangkalan data menemui nilai rentetan tidak sah semasa operasi SQL. Ini boleh disebabkan oleh beberapa faktor, termasuk:

  • Pengekodan data tidak patuh: Data yang dimasukkan ke dalam pangkalan data mungkin tidak mematuhi set aksara UTF-8 yang dijangka akan ada.
  • Isu sambungan: Sambungan pangkalan data mungkin tidak dikonfigurasikan dengan betul untuk mengendalikan penghantaran data UTF-8.
  • Konfigurasi jadual yang salah: jadual pangkalan data mungkin mempunyai set aksara atau penyusunan yang tidak sesuai, yang menghalangnya daripada menerima nilai UTF-8.

Penyelesaian Masalah dan Penyelesaian

Untuk menyelesaikan "rentetan yang salah nilai" dan pastikan pengendalian UTF-8 yang betul, ikuti ini langkah:

  • Sahkan pengekodan data: Pastikan data yang anda masukkan dikodkan dalam UTF-8 menggunakan alatan seperti penyemak Unicode atau yang serupa.
  • Konfigurasikan sambungan pangkalan data: Selepas menyambung ke pangkalan data, laksanakan arahan berikut untuk menetapkan set aksara UTF-8 dan pengumpulan:
SET NAMES 'utf8mb4';
SET CHARACTER SET utf8mb4;
Salin selepas log masuk
  • Semak konfigurasi jadual: Jalankan pertanyaan SQL berikut untuk mengesahkan bahawa jadual yang terjejas mempunyai set aksara 'utf8mb4':
SELECT
  `tables`.`TABLE_NAME`,
  `collations`.`character_set_name`
FROM
  `information_schema`.`TABLES` AS `tables`,
  `information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations`
WHERE
  `tables`.`table_schema` = DATABASE()
  AND `collations`.`collation_name` = `tables`.`table_collation`
;
Salin selepas log masuk

Jika set aksara bukan 'utf8mb4,' ubah suai takrif jadual untuk disertakan ia.

  • Semak tetapan pangkalan data: Jalankan arahan berikut untuk memastikan konfigurasi pangkalan data ditetapkan untuk mengendalikan data UTF-8:
mysql> show variables like '%colla%';
mysql> show variables like '%charac%';
Salin selepas log masuk

Hasilnya hendaklah termasuk tetapan seperti 'character_set_database' dan 'collation_connection' yang ditetapkan kepada 'utf8mb4.'

Impak Pembetulan

Menggunakan pembetulan ini akan membolehkan pangkalan data memproses rentetan UTF-8 dengan betul, menyelesaikan ralat "nilai rentetan yang salah". Walau bagaimanapun, penukaran kepada 'utf8mb4' mungkin mempunyai kesan berikut:

  • Ia akan mengambil lebih banyak ruang storan daripada 'utf8mb3.'
  • Operasi SQL tertentu, seperti mengisih dan mencari, mungkin menjadi lebih perlahan disebabkan saiz set aksara yang meningkat.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Nilai Rentetan Yang Salah' MySQL dalam UTF-8?. 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