Rumah > pangkalan data > tutorial mysql > Mengapa Saya Masih Mendapat Ralat 'Nilai Rentetan Tidak Betul' dalam Pangkalan Data MySQL UTF-8 Saya?

Mengapa Saya Masih Mendapat Ralat 'Nilai Rentetan Tidak Betul' dalam Pangkalan Data MySQL UTF-8 Saya?

Patricia Arquette
Lepaskan: 2024-12-17 11:40:24
asal
593 orang telah melayarinya

Why Am I Still Getting

Membetulkan Ralat "Nilai Rentetan Tidak Betul" dalam MySQL

Latar Belakang:

Walaupun mengkonfigurasi teks lajur dengan set aksara dan pengumpulan UTF-8, alamat e-mel tertentu terus mencetuskan "Nilai rentetan yang salah" kesilapan. Artikel ini meneroka punca ralat ini dan menyediakan penyelesaian.

Punca:

Mesej ralat mencadangkan bahawa alamat e-mel yang terjejas mengandungi aksara yang tidak disokong oleh aksara semasa tetapkan konfigurasi. Walaupun UTF-8 secara amnya permisif, sesetengah jujukan aksara mungkin melebihi hadnya.

Penyelesaian:

  1. Sahkan Pengekodan Data: Pastikan data sumber (alamat e-mel) benar-benar dikodkan UTF-8.
  2. Semak Sambungan Pangkalan Data: Selepas mewujudkan sambungan MySQL, laksanakan pernyataan SQL berikut:

    SET NAMES 'utf8mb4';
    SET CHARACTER SET utf8mb4;
    Salin selepas log masuk

    Ini menetapkan set aksara dan pengumpulan untuk sambungan semasa ke UTF-8 dengan empat bait setiap aksara (utf8mb4).

  3. Sahkan Set Aksara Jadual: Untuk jadual yang mengandungi alamat e-mel yang terjejas, jalankan pertanyaan berikut untuk menyemak set aksara:

    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

    Pastikan set aksara ditetapkan kepada utf8mb4.

  4. Semak Tetapan Pangkalan Data: Jalankan pernyataan MySQL berikut untuk mengesahkan set aksara global dan tetapan pengumpulan:

    mysql> show variables like '%colla%';
    mysql> show variables like '%charac%';
    Salin selepas log masuk

    Pastikan bahawa kedua-dua set aksara dan penyusunan ditetapkan kepada utf8mb4.

Kesan Pembetulan:

Menggunakan utf8mb4 meningkatkan julat aksara yang disokong dan menghapuskan ralat "Nilai rentetan yang salah" untuk alamat e-mel dengan aksara lanjutan. Ia juga boleh meningkatkan keserasian pangkalan data dengan data antarabangsa dan piawaian Unikod masa hadapan.

Atas ialah kandungan terperinci Mengapa Saya Masih Mendapat Ralat 'Nilai Rentetan Tidak Betul' dalam Pangkalan Data MySQL UTF-8 Saya?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan