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%';
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 | +--------------------------+--------------------+
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
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;
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!