Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menukar Aksara Latin1 dengan betul kepada UTF-8 dalam Pangkalan Data MySQL?

Bagaimana untuk Menukar Aksara Latin1 dengan betul kepada UTF-8 dalam Pangkalan Data MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 20:22:29461semak imbas

How to Correctly Convert Latin1 Characters to UTF-8 in a MySQL Database?

Tukar Aksara Latin1 dalam Jadual UTF-8 kepada UTF-8

Percanggahan Pengekodan:

Anda telah menemui salah jajaran antara tetapan pengekodan PHP dan MySQL, yang membawa kepada penyimpanan aksara diakritik yang salah dalam jadual UTF-8. Walaupun sisipan baharu kini betul, baris yang lebih lama masih mengandungi aksara yang rosak.

Langkah Pembetulan:

Untuk membetulkan isu ini, gunakan fungsi convert() MySQL:

<code class="sql">convert(cast(convert(name using  latin1) as binary) using utf8)</code>

Fungsi ini menukar data berkod Latin1 kepada UTF-8. Penukaran berganda memastikan data tidak dipotong semasa proses penukaran.

Contoh Penggunaan:

Dalam kod anda, gunakan penukaran dalam pertanyaan kemas kini anda:

<code class="sql">mysql_iquery('UPDATE `table` SET `name`="'.mysql_real_escape_string(convert(cast(convert(name using  latin1) as binary) using utf8)).'" WHERE `a1`="'.$row['a1'].'"');</code>

Ini akan mengemas kini lajur nama dalam jadual anda dengan aksara UTF-8 yang ditukar dengan betul.

Nota:

Bergantung pada pengubahan data semasa penukaran pengekodan, anda mungkin perlu meninggalkan fungsi tukar dalam daripada pertanyaan. Uji kedua-dua senario dan pakai senario yang membuahkan hasil yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Aksara Latin1 dengan betul kepada UTF-8 dalam Pangkalan Data 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