Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Memperbaiki Aksara UTF8 Berkod Dua dalam Jadual MySQL?

Bagaimana untuk Memperbaiki Aksara UTF8 Berkod Dua dalam Jadual MySQL?

DDD
DDDasal
2024-10-31 00:15:03891semak imbas

How to Fix Double-Encoded UTF8 Characters in a MySQL Table?

Membetulkan Aksara UTF8 Berkod Dua dalam Jadual UTF-8

Operasi import sebelumnya menggunakan LOAD DATA INFILE salah mengandaikan bahawa input CSV fail telah dikodkan Latin1. Ini menyebabkan aksara berbilangbait dipecahkan kepada dua aksara bait tunggal dan seterusnya dikodkan dua kali dalam UTF-8, mewujudkan anomali seperti 'ñ' dan bukannya 'ñ'.

Untuk membetulkan rentetan tersalah kod ini, MySQL menyediakan penyelesaian menggunakan fungsi CONVERT():

CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)

Fungsi ini mengambil medan dwikod dan secara berurutan menukarnya daripada Latin1 (dengan mengandaikan pengekodan fail asal) kepada perwakilan binari dan akhirnya kepada UTF-8, membuat asal pengekodan berganda dengan berkesan.

Untuk menggunakan pembetulan ini, pernyataan KEMASKINI boleh dilaksanakan:

UPDATE tablename SET
    field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);

Pernyataan ini akan menggantikan nilai medan sedia ada dengan yang diperbetulkan, memulihkan UTF yang dimaksudkan -8 perwakilan aksara berbilangbait.

Atas ialah kandungan terperinci Bagaimana untuk Memperbaiki Aksara UTF8 Berkod Dua dalam Jadual 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