Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menyelesaikan aksara Cina yang kacau dalam mysql

Bagaimana untuk menyelesaikan aksara Cina yang kacau dalam mysql

PHPz
PHPzasal
2023-04-21 14:16:5910329semak imbas

Pangkalan data MySQL ialah pangkalan data hubungan biasa yang digunakan secara meluas dalam aplikasi web, pengurusan data dan storan data besar. Walau bagaimanapun, dalam aplikasi harian MySQL, kita sering menghadapi masalah aksara Cina yang kacau, yang akan menjejaskan ketepatan dan kebolehbacaan data. Oleh itu, dengan berkesan menyelesaikan masalah bercelaru MySQL Cina adalah sangat penting untuk pengurusan pangkalan data dan aplikasi.

Artikel ini akan memperkenalkan punca-punca aksara Cina MySQL yang kacau dan cara menyelesaikan masalah aksara Cina MySQL yang kacau dengan berkesan.

1. Sebab bagi aksara Cina MySQL yang kacau

Set aksara lalai pangkalan data MySQL ialah Latin2 (ISO 8859-2), yang hanya menyokong beberapa huruf, nombor dan beberapa aksara khas.

Apabila kami menggunakan set aksara lain seperti UTF-8 untuk menulis aksara Cina, MySQL akan menyalahkan aksara ini sebagai aksara bagi set aksara Latin2, mengakibatkan kekeliruan dalam pengekodan aksara, yang dipanggil "kod kacau".

2. Penyelesaian kepada aksara Cina MySQL yang kacau

  1. Ubah suai set aksara MySQL

Apabila memasang MySQL, kita boleh memilih untuk memasang set aksara yang berbeza , seperti UTF-8, GBK, gb2312, dsb.

Jika kami telah memasang MySQL, kami boleh menentukan set aksara dengan mengubah suai fail konfigurasi (my.cnf). Buka my.cnf dan tambah kod berikut:

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci

skip-character-set-client-handshake

Note : Di atas ialah konfigurasi UTF-8 Jika anda menggunakan GBK atau GB2312, gantikan terus dengan set aksara yang sepadan.

Nota: Selepas pengubahsuaian selesai, perkhidmatan MySQL perlu dimulakan semula untuk berkuat kuasa.

  1. Ubah suai set aksara melalui baris arahan

Kami juga boleh mengubah suai set aksara MySQL melalui baris arahan. Selepas log masuk ke baris arahan MySQL, masukkan arahan berikut:

Tetapkan set aksara pangkalan data kepada utf8mb4

UBAH PANGKALAN DATA yourdb SET KARAKTER utf8mb4 COLLATE utf8mb4_unicode_ci;

Tetapkan jadual set aksara ALTER TABLE yourtable TUKAR KE SET WATAK utf8mb4 COLLATE utf8mb4_unicode_ci;

Tetapkan set aksara medan dalam jadual kepada utf8mb4

UBAH JADUAL yourtable UTF8mb4_unicode_ci;

Tetapkan set aksara medan dalam jadual kepada utf8mb4

    UBAH JADUAL yourtable UTFUBAHKAN LAjur anda25mb5LLSET8 (utf8mb4) _unicode_ci ;
Set aksara tetapan editor

Semasa proses pembangunan, kami boleh menentukan set aksara melalui tetapan editor. Jika anda menggunakan editor Teks Sublime, klik Keutamaan -> dan tambahkan kod berikut:

"default_encoding": "utf8"

    Ini akan memastikan bahawa semasa menulis kod, pengekodan adalah ditentukan. UTF-8 mengelakkan masalah aksara Cina yang kacau.
Nyatakan set aksara dalam aplikasi

Dalam aplikasi web, kita perlu secara manual menentukan set aksara dalam kod untuk memastikan ia konsisten dengan aksara ditetapkan dalam pangkalan data MySQL konsisten.

Contoh kod PHP:

// Tetapkan format pengekodan kepada UTF-8

header("Content-type:text/html;charset=utf-8");

// Sambung ke MySQL

$conn=mysqli_connect("localhost","nama pengguna","kata laluan","dbname");

// Tetapkan set aksara sambungan MySQL kepada UTF -8
    mysqli_query($conn,"set names utf8mb4");
Gunakan kumpulan sambungan pangkalan data

Kolam sambungan dalam MySQL boleh meningkatkan kecekapan pangkalan data sambungan dan boleh Tetapkan set aksara untuk sambungan.

Contoh kod Java:

// Cipta kumpulan sambungan

DataSource ds = DruidDataSourceFactory.createDataSource(properties);

// Dapatkan sambungan

Sambungan sambungan = ds.getConnection();

//Tetapkan set aksara sambungan
    conn.createStatement().execute("set names utf8mb4");
Nyatakan aksara semasa mengimport Set data

Dalam proses mengimport data, kita perlu menentukan set aksara Contohnya, jika anda menggunakan baris arahan MySQL untuk mengimport data, laksanakan arahan berikut:

Nyatakan pengekodan sebagai UTF- semasa mengimport data 8

    mysql -h yourhost -u youruser -p --default-character-set=utf8mb4 yourdb < yourdata.sql
Tukar set aksara Cina

Jika sudah terdapat data bercelaru dalam pangkalan data MySQL, anda boleh menukarnya dengan arahan berikut:

Tukar set aksara dalam pangkalan data

UBAH PANGKALAN DATA yourdb SET WATAK utf8mb4 COLLATE utf8mb4_unicode_ci;

Tukar set aksara dalam jadual

UBAH JADUAL yourtable TUKAR KE SET WATAK utf8mb4🜎🎜Convert yang set aksara medan

ALTER TABLE yourtable UBAHSUAI COLUMN yourcolumn VARCHAR(255) CHAR SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Di atas adalah penyelesaian kepada masalah bercelaru Bahasa Cina MySQL. Dengan menetapkan set aksara MySQL dengan betul, memastikan set aksara antara aplikasi dan pangkalan data MySQL adalah konsisten, dan menyatakan set aksara semasa mengimport dan menukar data, kami boleh menyelesaikan masalah MySQL yang bercelaru Cina dengan berkesan. Pada masa yang sama, pilih kaedah yang sesuai mengikut situasi sebenar untuk memastikan ketepatan dan kebolehbacaan data.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan aksara Cina yang kacau dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn