Bagaimana untuk Memperbaiki Aksara UTF8 Berkod Dua dalam Jadual MySQL?

DDD
Lepaskan: 2024-10-31 00:15:03
asal
957 orang telah melayarinya

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)
Salin selepas log masuk

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);
Salin selepas log masuk

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!

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