Rumah > pangkalan data > tutorial mysql > Mengapa Saya Mendapat Ralat 'Rentetan Aksara utf8 Tidak Sah' Semasa Menyimpan Emoji dalam Pangkalan Data MySQL utf8mb4 Saya?

Mengapa Saya Mendapat Ralat 'Rentetan Aksara utf8 Tidak Sah' Semasa Menyimpan Emoji dalam Pangkalan Data MySQL utf8mb4 Saya?

DDD
Lepaskan: 2024-12-09 12:50:14
asal
723 orang telah melayarinya

Why Am I Getting

Menyimpan Emoji dalam Pangkalan Data MySQL utf8mb4: Menyelesaikan Masalah Ralat Aksara Tidak Sah

Apabila cuba menyimpan nama yang mengandungi emoji dalam pangkalan data MySQL, ralat seperti " Rentetan aksara utf8 tidak sah" mungkin timbul walaupun konfigurasi yang betul. Satu isu yang berpotensi terletak pada set aksara dan tetapan penyusunan yang tidak konsisten.

Untuk mengesahkan konfigurasi, laksanakan pertanyaan berikut:

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
Salin selepas log masuk

Output hendaklah memaparkan tetapan berikut untuk pangkalan data yang dipersoalkan:

+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+
Salin selepas log masuk

Pastikan bahawa nilai untuk character_set_client, character_set_connection dan character_set_results semuanya ditetapkan kepada utf8mb4. Jika tidak, laraskan tetapan ini dengan sewajarnya.

Selain itu, semak sama ada fail konfigurasi my.cnf mengandungi sebarang ketidakkonsistenan. Cari tetapan yang menentukan set aksara dan himpunan dan pastikan ia konsisten dengan konfigurasi pangkalan data. Contohnya, sahkan bahawa baris ini ada:

character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Salin selepas log masuk

Jika tetapan ini tidak ada atau tidak betul, ubah suainya mengikut keperluan dan mulakan semula perkhidmatan MySQL.

Akhir sekali, pertimbangkan untuk melaksanakan perkara berikut pertanyaan untuk menetapkan set aksara dan penyusunan untuk sambungan semasa:

SET NAMES utf8mb4;
Salin selepas log masuk

Ini akan memastikan bahawa ketiga-tiga pembolehubah set aksara ditetapkan dengan betul.

Dengan mengikut langkah ini, anda boleh menyelesaikan isu ralat aksara UTF-8 yang tidak sah apabila menyimpan emoji dalam pangkalan data MySQL dengan konfigurasi utf8mb4.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Rentetan Aksara utf8 Tidak Sah' Semasa Menyimpan Emoji dalam Pangkalan Data MySQL utf8mb4 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan