Mari kita bincangkan tentang penyelesaian kepada data bercelaru yang diimport ke MySQL

PHPz
Lepaskan: 2023-04-21 11:37:53
asal
2658 orang telah melayarinya

MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka yang digunakan secara meluas dalam pelbagai aplikasi Internet. Data yang disimpan dalam pangkalan data kadangkala mungkin melibatkan bahasa Cina, jadi aksara bercelaru sering ditemui semasa mengimport data. Artikel ini akan memperkenalkan penyelesaian kepada import data MySQL yang bercelaru.

1. Analisis sebab

Dalam MySQL, jika set aksara pangkalan data dan set aksara jadual data tidak konsisten, data yang diimport akan bercelaru. Oleh itu, sebelum mengimport data, anda perlu menyemak dengan teliti sama ada set aksara pangkalan data dan jadual data adalah konsisten. Sekiranya ia tidak konsisten, ia perlu diubah suai.

2. Ubah suai set aksara

  1. Ubah suai set aksara pangkalan data

Pertama, anda perlu log masuk ke pangkalan data MySQL, masukkan pangkalan data dan laksanakan arahan berikut:

SHOW CREATE DATABASE `database_name`;
Salin selepas log masuk

Kemudian anda boleh melihat pernyataan tetapan set aksara, seperti yang ditunjukkan di bawah:

CREATE DATABASE `database_name` /*!40100 DEFAULT CHARACTER SET utf8 */
Salin selepas log masuk

Utf8 di sini ialah set aksara pangkalan data MySQL. Jika anda perlu mengubah suai set aksara, anda boleh melaksanakan Pernyataan berikut:

ALTER DATABASE `database_name` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Salin selepas log masuk

UTf8mb4 di sini adalah sama dengan utf8, tetapi ia menyokong lebih banyak set aksara Adalah disyorkan untuk menggunakan utf8mb4.

  1. Ubah suai set aksara jadual data

Jika set aksara pangkalan data telah diubah suai, tetapi aksara bercelaru masih muncul semasa mengimport data, kemungkinan set aksara jadual data dan Disebabkan oleh ketidakkonsistenan pangkalan data. Anda boleh menanyakan set aksara jadual data melalui arahan berikut:

SHOW CREATE TABLE `table_name`;
Salin selepas log masuk

Kemudian anda boleh melihat tetapan set aksara dan peraturan penyusunan, seperti yang ditunjukkan di bawah:

CREATE TABLE `table_name` (
  `id` int(10) unsigned NOT NULL,
  `name` varchar(255)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Salin selepas log masuk

CHARSET dan COLLATE di sini Ia adalah set aksara dan peraturan penyusunan, yang perlu konsisten dengan set aksara pangkalan data. Jika ia tidak konsisten, anda boleh melaksanakan pernyataan berikut untuk mengubah suainya:

ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Salin selepas log masuk

Nota: Mengubah suai set aksara mungkin menjejaskan prestasi dan ruang storan pangkalan data dan perlu dikendalikan dengan berhati-hati.

3. Tukar pengekodan data

Jika aksara bercelaru muncul semasa mengimport data, anda boleh cuba menukar pengekodan data. Alat penukaran biasa termasuk iconv dan recode.

  1. Gunakan iconv

Anda boleh menggunakan iconv untuk menukar pengekodan data kepada pengekodan sasaran, contohnya, tukar data yang dikodkan GBK kepada pengekodan UTF-8:

iconv -f GBK -t UTF-8 file.txt > file_utf-8.txt
Salin selepas log masuk

-f mewakili pengekodan asal, -t mewakili pengekodan sasaran, file.txt ialah nama fail data asal dan file_utf-8.txt ialah nama fail yang ditukar.

  1. Gunakan kod semula

kod semula adalah serupa dengan iconv. Anda juga boleh menukar pengekodan data kepada pengekodan sasaran, seperti menukar data yang dikodkan GB2312 kepada pengekodan UTF-8:

recode gb2312..utf8 file.txt
Salin selepas log masuk

gb2312 mewakili pengekodan asal, utf8 mewakili pengekodan sasaran dan file.txt ialah nama fail data asal.

Apabila menggunakan alat penukaran, anda perlu memberi perhatian kepada sama ada format pengekodan fail sumber dan format pengekodan sasaran adalah betul, jika tidak, data yang ditukar masih akan bercelaru.

4. Ringkasan

Penyelesaian kepada import data MySQL yang bercelaru termasuk mengubah suai set aksara dan menukar pengekodan data. Apabila mengubah suai set aksara, anda perlu memastikan bahawa set aksara pangkalan data dan set aksara jadual data adalah konsisten apabila menukar pengekodan data, anda perlu memberi perhatian kepada ketepatan pengekodan fail sumber dan pengekodan sasaran. Jika tiada kaedah di atas dapat menyelesaikan masalah aksara bercelaru, mungkin terdapat masalah dengan sumber data itu sendiri dan anda perlu menyemak sama ada sumber data itu betul.

Atas ialah kandungan terperinci Mari kita bincangkan tentang penyelesaian kepada data bercelaru yang diimport ke MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan