Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Membetulkan Pengekodan Berganda Unikod dalam Jadual UTF-8?

Bagaimana untuk Membetulkan Pengekodan Berganda Unikod dalam Jadual UTF-8?

Barbara Streisand
Barbara Streisandasal
2024-11-01 14:28:03494semak imbas

How to Correct Unicode Double-Encoding in UTF-8 Tables?

Pembetulan Pengekodan Berganda Unikod dalam Jadual UTF-8

Menghadapi anomali seperti "ñ" dan bukannya "ñ" menandakan potensi gandaan -isu pengekodan dengan aksara UTF-8. Ini berlaku apabila fail CSV tersilap dimuatkan di bawah andaian bahawa ia dikodkan Latin1, menyebabkan aksara berbilangbait tersilap dikenal pasti sebagai aksara tunggal dan kemudiannya dikodkan dalam UTF-8 semula.

Penyelesaian

Untuk membetulkan pengekodan dua kali ini, fungsi MySQL tersedia:

<code class="sql">CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)</code>

Fungsi ini mengambil aksara yang dikodkan dalam Latin1, menghantarnya sebagai binari dan kemudian menukarnya kembali kepada UTF-8, mengalih keluar pengekodan dwi dengan berkesan.

Pembetulan melalui Kenyataan KEMASKINI

Untuk membetulkan medan yang terjejas, anda boleh menggunakan fungsi dalam pernyataan KEMASKINI:

<code class="sql">UPDATE tablename SET
    field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);</code>

Dengan melaksanakan pernyataan ini, aksara yang bermasalah akan dipulihkan kepada perwakilan UTF-8 yang betul.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Pengekodan Berganda Unikod dalam Jadual UTF-8?. 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