1. Penerangan Masalah
Pangkalan data MySQL ialah pangkalan data hubungan yang biasa digunakan, yang digunakan secara meluas dalam pelbagai projek perusahaan. Apabila menggunakan pangkalan data MySQL, kita akan menghadapi pelbagai masalah, antaranya masalah aksara Cina bercelaru adalah perkara biasa.
Masalah aksara Cina yang kacau-bilau dinyatakan seperti berikut:
Masalah kod Cina yang kacau-bilau ini akan menjejaskan kebolehbacaan dan kebolehgunaan maklumat untuk pengguna Jika masalah ini tidak dapat diselesaikan, ia akan membawa pengalaman yang sangat menyusahkan pengguna.
2. Penyelesaian
Di bawah ini kami akan memperkenalkan cara untuk menyelesaikan masalah aksara Cina yang kacau dalam MySQL dari beberapa aspek.
MySQL menyokong beberapa set aksara Set aksara lalai sebelum MySQL 5.5 ialah latin1, yang ditukar kepada utf8mb4 selepas MySQL 5.5. Oleh itu, apabila mencipta pangkalan data dan jadual, adalah lebih baik untuk menyatakan secara eksplisit set aksara untuk digunakan.
Anda boleh mencipta pangkalan data dengan set aksara utf8mb4 melalui pernyataan SQL berikut:
CREATE DATABASE mydatabase DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Pangkalan data yang dicipta oleh pernyataan SQL di atas menggunakan set aksara utf8mb4 secara lalai dan menentukan utf8mb4_general_ci sebagai pengumpulan.
Anda juga boleh menentukan set aksara dan penyusunan dengan cara yang sama semasa mencipta jadual:
CREATE TABLE mytable ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
Jadual mytable yang dicipta oleh pernyataan SQL di atas menggunakan set aksara utf8mb4 secara lalai dan utf8mb4_general_ci dinyatakan sebagai pengumpulan.
Apabila menentukan set aksara dan peraturan pengisihan, anda perlu memberi perhatian untuk memastikan set aksara pelanggan dan pelayan adalah konsisten, jika tidak, masalah bercelaru Cina masih akan berlaku.
Fail konfigurasi lalai untuk MySQL ialah my.cnf, yang biasanya terletak di /etc/mysql/my.cnf pada sistem Linux .
Dengan mengubah suai fail konfigurasi MySQL, set aksara lalai dan penyusunan MySQL boleh diubah suai kepada utf8mb4.
Dalam fail my.cnf, anda boleh menemui dua baris kod berikut:
[mysqld] character-set-server = latin1
Tukar pelayan set aksara kepada utf8mb4, simpan dan keluar, dan mulakan semula perkhidmatan MySQL.
Dengan mengubah suai set aksara sambungan antara klien dan pelayan MySQL, masalah aksara Cina bercelaru juga boleh diselesaikan.
Anda boleh mengubah suai set aksara sambungan melalui pernyataan berikut:
SET NAMES utf8mb4;
Selepas melaksanakan pernyataan di atas, set aksara utf8mb4 akan digunakan untuk komunikasi antara klien dan pelayan.
Jika tiada kaedah di atas dapat menyelesaikan masalah bercelaru bahasa Cina, maka anda perlu menyemak sama ada format pengekodan aplikasi adalah betul.
Apabila membangunkan aplikasi menggunakan bahasa dinamik seperti PHP, anda perlu memastikan bahawa data input dan output dikod dan dinyahkod dengan betul.
Anda boleh menetapkan pengekodan melalui pernyataan berikut:
header('Content-Type:text/html; charset=utf-8');
Ini boleh memastikan bahawa kaedah pengekodan halaman web adalah UTF-8, sekali gus menyelesaikan masalah aksara Cina yang kacau.
Apabila melakukan sandaran dan pemulihan pangkalan data, anda juga perlu memberi perhatian kepada isu set aksara Cina.
Jika set aksara fail sandaran tidak konsisten dengan pangkalan data, aksara Cina bercelaru mungkin muncul semasa pemulihan. Oleh itu, apabila membuat sandaran dan memulihkan pangkalan data MySQL, adalah lebih baik untuk menetapkan set aksara fail sandaran agar konsisten dengan pangkalan data.
Jika set aksara fail sandaran tidak konsisten dengan pangkalan data, anda perlu menukar fail sandaran kepada set aksara yang betul sebelum memulihkan.
3. Ringkasan
Masalah bercelaru bahasa Cina MySQL adalah masalah yang agak biasa dan ia agak mudah untuk diselesaikan. Bergantung kepada keadaan sebenar, terdapat banyak cara untuk menyelesaikan masalah ini. Apabila memilih penyelesaian, anda perlu membuat pilihan berdasarkan situasi khusus untuk memastikan bahawa masalah watak bercelaru Cina dapat diselesaikan dengan berkesan.
Atas ialah kandungan terperinci data mysql kod Cina bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!