MySQL ialah sistem pengurusan pangkalan data hubungan biasa Bagi kebanyakan pembangun, ia telah menjadi satu keperluan untuk kerja pembangunan. Walau bagaimanapun, apabila menggunakan MySQL, ramai pengguna mungkin menghadapi masalah "Tidak boleh menggunakan bahasa Cina".
Ketidakupayaan MySQL untuk menggunakan bahasa Cina terutamanya ditunjukkan dalam dua aspek: dalam satu pihak, aksara Cina yang kacau dalam antara muka baris arahan MySQL, dan sebaliknya, masalah penyimpanan dan pertanyaan aksara Cina dalam pangkalan data MySQL. Artikel ini akan meneroka kedua-dua aspek masalah ini secara terperinci dan menyediakan penyelesaian yang sepadan.
Aksara Cina yang kacau dalam antara muka baris arahan MySQL
Antara muka baris arahan MySQL ialah fungsi teras MySQL Pembangun boleh melaksanakan pelbagai arahan dalam antara muka ini. Walau bagaimanapun, ramai pengguna akan menemui aksara Cina yang kacau apabila menggunakan antara muka baris arahan MySQL. Ini terutamanya kerana set aksara lalai MySQL ialah "latin1" dan bukannya "utf8".
Berikut menerangkan cara menyelesaikan masalah bercelaru bahasa Cina dalam antara muka baris arahan MySQL.
Kaedah 1: Tentukan nama pengguna yang menyokong set aksara Cina dengan menambahkan parameter "-u" apabila menggunakan alat baris arahan "mysql".
Sebagai contoh, gunakan arahan berikut untuk menentukan nama pengguna "root" dan kata laluan "kata laluan":
mysql -u root -ppassword
Kaedah 2: Gunakan arahan berikut untuk melihat lalai MySQL semasa set aksara:
mysql> show variables like '%character%';
Arahan ini akan memaparkan tetapan set aksara semasa, di mana nilai tiga parameter "set_karakter_client", "set_karakter_sambungan" dan "set_karakter_hasil" semuanya "latin1".
Untuk menyelesaikan masalah bercelaru bahasa Cina dalam antara muka baris arahan, anda perlu menukar nilai tiga parameter ini kepada "utf8". Tujuan boleh dicapai melalui arahan berikut:
mysql> set character_set_client=utf8; mysql> set character_set_connection=utf8; mysql> set character_set_results=utf8;
Kaedah 3: Ubah suai fail konfigurasi MySQL "my.cnf".
Dalam fail konfigurasi MySQL, cari tiga baris kod berikut:
character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
Alih keluar komen bagi tiga baris kod ini dan tukar nilai kepada "utf8", seperti yang ditunjukkan di bawah :
character-set-client-handshake = FALSE character-set-server = utf8 collation-server = utf8_general_ci
Masalah storan dan pertanyaan aksara Cina dalam pangkalan data MySQL
Selain masalah bercelaru bahasa Cina dalam antara muka baris arahan, pangkalan data MySQL itu sendiri mungkin juga mempunyai storan aksara Cina dan masalah pertanyaan.
Sebagai contoh, apabila kami memasukkan beberapa data yang mengandungi aksara Cina ke dalam pangkalan data MySQL, kami mungkin menghadapi ralat berikut:
Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1
Ini kerana set aksara lalai MySQL ialah "latin1 " bukannya "utf8". Jika anda ingin menyokong membuat jadual dan menyimpan data dalam bahasa Cina, anda perlu menetapkan set aksara struktur jadual kepada "utf8".
Berikut menerangkan cara menyelesaikan masalah penyimpanan aksara Cina dan pertanyaan dalam pangkalan data MySQL.
Kaedah 1: Selesaikan masalah dengan menentukan set aksara sebagai "utf8" semasa mencipta jadual.
Sebagai contoh, gunakan arahan berikut untuk mencipta jadual bernama "orang" dan tetapkan set aksara medan "nama" dalam jadual kepada "utf8":
CREATE TABLE person ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (id) ) DEFAULT CHARSET=utf8;
Kaedah 2: Tetapkan set aksara lalai kepada "utf8" dalam fail konfigurasi MySQL supaya semua jadual menggunakan set aksara ini secara lalai.
Dalam fail konfigurasi MySQL, cari dua baris kod berikut:
character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci
Alih keluar komen dua baris kod ini dan tukar nilai kepada "utf8", seperti yang ditunjukkan di bawah :
character-set-server=utf8 collation-server=utf8_general_ci
Untuk jadual sedia ada, anda boleh mengubah suai set aksara struktur jadual melalui arahan berikut:
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Kesimpulan
Sama ada dalam antara muka baris arahan atau pangkalan data MySQL, terdapat masalah set aksara Cina. Apabila anda menghadapi masalah seperti ini, sila selesaikan mengikut kaedah yang disediakan dalam artikel ini. Dengan melaraskan set aksara, anda akan dapat membuat pertanyaan dan menyimpan data Cina dengan mudah dan mengelakkan pelbagai masalah yang dihadapi dalam pemprosesan aksara Cina.
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika mysql tidak boleh menggunakan bahasa Cina?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!