Rumah > Artikel > pangkalan data > Apakah yang perlu saya lakukan jika mysql memaparkan aksara bercelaru?
MySQL ialah sistem pengurusan pangkalan data hubungan popular yang digunakan secara meluas dalam aplikasi web dan aplikasi dipacu data lain. Apabila menggunakan MySQL, aksara bercelaru kadangkala berlaku, iaitu, data dalam pangkalan data dipaparkan sebagai aksara bercelaru atau aksara bercelaru dilihat dalam fail data yang dieksport daripada pangkalan data. Artikel ini akan membincangkan cara menyelesaikan masalah MySQL memaparkan aksara bercelaru.
Punca utama watak bercelaru ialah ketidakpadanan set aksara. Dalam MySQL, terdapat dua set aksara biasa: set aksara pelayan dan set aksara klien. Set aksara pelayan ialah set aksara yang digunakan untuk menyimpan dan memproses data, manakala set aksara klien ialah set aksara yang digunakan untuk input dan output melalui sambungan klien.
Jika set aksara pelayan dan set aksara pelanggan berbeza, aksara bercelaru akan terhasil. Oleh itu, kita perlu menyemak dan memadankannya. Set aksara pelayan boleh ditetapkan dalam fail konfigurasi MySQL my.cnf, contohnya:
[client]
default-character-set=utf8mb4
[mysql]
default -character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
Dalam contoh ini, kedua-dua set aksara dan Set collation kepada utf8mb4. Jika anda tidak pasti set aksara apa yang patut anda gunakan, adalah disyorkan untuk menggunakan utf8mb4 kerana ia boleh menyokong rangkaian aksara yang lebih luas, termasuk emoji.
Jika data dalam pangkalan data sudah wujud dan set aksara ditetapkan dengan betul, tetapi aksara bercelaru masih dipaparkan, anda perlu menukar pangkalan data pengekodan. Ia boleh diubah melalui langkah berikut:
(1) Sandarkan pangkalan data
Sebelum membuat perubahan, pastikan anda membuat sandaran pangkalan data untuk mengelakkan kehilangan data.
(2) Ubah suai set aksara dan penyusunan jadual
Anda boleh mengubah suai set aksara dan penyusunan jadual melalui pernyataan ALTER TABLE. Contohnya:
UBAH nama jadual JADUAL TUKAR KE SET WATAK utf8mb4 COLLATE utf8mb4_unicode_ci;
Ini akan menukar set aksara dan himpunan setiap lajur dalam jadual kepada utf8mb4 dan utf8mb4_unicode_ci.
(3) Ubah suai set aksara dan pengumpulan pangkalan data
Selepas melaksanakan pernyataan ALTER TABLE, anda juga perlu menukar set aksara dan penyusunan pangkalan data. Ini boleh ditukar menggunakan pernyataan berikut:
UBAH nama pangkalan data PANGKALAN DATA SET KARAKTER utf8mb4 COLLATE utf8mb4_unicode_ci;
Ini akan menukar set aksara dan pengumpulan pangkalan data kepada utf8mb4 dan utf8mb4_unicode_ci.
(4) Import semula data sandaran
Selepas menukar set aksara dan penyusunan, data sandaran perlu diimport semula ke dalam pangkalan data.
Jika set aksara pelanggan yang digunakan tidak betul, ia juga akan menyebabkan aksara bercelaru. Anda boleh menukar set aksara klien melalui langkah berikut:
(1) Buka klien MySQL
Sebelum membuka klien MySQL, anda perlu menetapkan set aksara klien. Anda boleh menggunakan arahan berikut untuk membuka klien dan menetapkan set aksara:
mysql --default-character-set=utf8mb4 -u username -p
(2) Tukar aksara klien set
Dalam klien, anda boleh menukar charset klien menggunakan arahan berikut:
SET NAMES utf8mb4;
Ini akan menukar charset klien kepada utf8mb4.
Jika tiada penyelesaian di atas dapat menyelesaikan masalah bercelaru, anda boleh mempertimbangkan penyelesaian berikut:
(1) Gunakan binari untuk menyimpan data
Anda boleh mempertimbangkan untuk menggunakan binari untuk menyimpan data, yang boleh mengelakkan masalah set aksara. Walau bagaimanapun, kaedah ini mengambil lebih banyak ruang storan dan lebih kompleks untuk dikendalikan.
(2) Gunakan alat transcoding Unicode
Anda boleh menggunakan alat transcoding Unicode untuk menukar aksara bercelaru kepada aksara yang betul. Walau bagaimanapun, kaedah ini kurang dipercayai dan boleh mengakibatkan kehilangan atau ralat data.
Ringkasnya, masalah bercelaru adalah masalah biasa dalam MySQL, tetapi ia boleh diselesaikan dengan menetapkan set aksara yang betul dan menukar pengekodan pangkalan data. Jika itu masih tidak menyelesaikan masalah, anda boleh mempertimbangkan penyelesaian lain. Apabila menggunakan MySQL, adalah disyorkan untuk memahami dan mempelajari pengetahuan yang berkaitan dengan set aksara untuk mengelakkan aksara bercelaru dengan berkesan.
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika mysql memaparkan aksara bercelaru?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!