Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menukar Aksara Latin1 dengan betul kepada UTF-8 dalam Pangkalan Data MySQL?
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!