Rumah > Artikel > pangkalan data > Bagaimana untuk menyelesaikan aksara bercelaru pertanyaan Cina mysql
Punca aksara bercelaru dalam pertanyaan Bahasa Cina MySQL
Set aksara lalai MySQL ialah LATIN1, dan UTF-8 ialah format pengekodan yang lebih meluas digunakan . Jika kami menggunakan pengekodan UTF-8 untuk menyimpan data Cina, tetapi menggunakan pengekodan LATIN1 semasa membuat pertanyaan, maka kami akan mempunyai hasil pertanyaan yang kacau.
Dalam MySQL, kami boleh menyelesaikan masalah pertanyaan bahasa Cina yang bercelaru dengan cara berikut:
Semak pengekodan pangkalan data dan pengekodan jadual
Kita perlu terlebih dahulu menyemak sama ada pengekodan pangkalan data dan jadual adalah betul dan memastikan ia konsisten dengan format pengekodan apabila data disimpan. Kita boleh menanyakan format pengekodan pangkalan data dan jadual melalui pernyataan SQL berikut:
SHOW CREATE TABLE table_name; SHOW VARIABLES LIKE 'character_set_database';
Dalam hasil pertanyaan, kita boleh melihat format pengekodan pangkalan data dan jadual, serta set aksara pelayan dan klien, dan aksara set sambungan semasa sepadan.
Tetapkan pengekodan sambungan MySQL
Anda boleh menetapkan format pengekodan sambungan klien MySQL kepada UTF-8 melalui pernyataan tetapan MySQL CONFIG . Untuk mengelakkan aksara bercelaru semasa membaca data. Kita boleh menggunakan arahan berikut apabila menyambung ke pelayan MySQL:
mysql --default-character-set=utf8 -u username -p
Arahan ini akan secara automatik menetapkan format pengekodan klien kepada UTF-8 apabila membuat sambungan dengan pelayan MySQL untuk memastikan ia tidak muncul semasa membaca data aksara bercelaru.
Ubah suai fail konfigurasi MySQL
Jika kita menggunakan MySQL 5.5 atau lebih tinggi, dalam fail konfigurasi my.cnf, kita boleh Tetapkan format pengekodan pelayan MySQL kepada UTF-8 melalui tetapan berikut:
[client] default-character-set=utf8 [mysqld] init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_general_ci
Dalam fail konfigurasi ini, kami boleh menetapkan format pengekodan lalai klien dan pelayan kepada UTF-8 untuk memastikan bahawa semasa membaca data Tidak watak bercelaru akan muncul.
Tetapkan pengekodan medan MySQL kepada UTF-8
Jika sudah terdapat beberapa data dalam pangkalan data kami yang menggunakan format pengekodan yang salah, kami boleh menetapkan format pengekodan semua medan dalam pangkalan data kepada UTF-8 melalui arahan berikut:
ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci; ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Perintah di atas akan mengubah suai semua format pengekodan pangkalan data dan jadual kepada UTF-8 untuk memastikan bahawa semasa membaca data Tiada aksara bercelaru akan muncul.
Dalam penggunaan sebenar, kita boleh memilih penyelesaian yang berbeza mengikut situasi tertentu. Apabila menyelesaikan masalah aksara bercelaru pertanyaan Cina, kita perlu memberi perhatian kepada fakta bahawa penukaran antara pelbagai set aksara menggunakan kecekapan, jadi kita perlu membuat pertukaran antara kecekapan dan ketepatan, dan mendasarkannya pada keperluan perniagaan sebenar kita. Pilih penyelesaian yang paling sesuai.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan aksara bercelaru pertanyaan Cina mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!