Penukaran Aksara Latin1 pada Jadual UTF8 kepada UTF8
Pertanyaan anda melibatkan penukaran aksara Latin1 dalam jadual UTF8 kepada UTF8. Mari kita teliti butiran masalah dan penyelesaian yang disediakan untuk membantu anda menyelesaikan isu ini.
Latar Belakang
Anda telah mendapati keperluan untuk menetapkan charset dengan betul antara PHP dan MySQL untuk mengendalikan data UTF-8. Ini telah menyelesaikan sisipan aksara diakritik baharu. Walau bagaimanapun, anda menghadapi masalah apabila cuba membetulkan baris sedia ada yang mengandungi aksara rosak.
Penyelesaian Cadangan
Penyelesaian yang disediakan menggunakan pendekatan berikut:
Tukar Nilai Perduaan kepada UTF8:
convert(cast(convert(name using latin1) as binary) using utf8)
Fungsi MySQL ini memulihkan data UTF-8 daripada data Latin1 yang rosak.
Pelarasan Pilihan (Bergantung pada Pengubahan Data):
Anda boleh meninggalkan penukaran dalam (tukar(nama menggunakan latin1)) jika data tidak diubah dengan ketara semasa penukaran pengekodan awal. Dalam kes itu, fungsinya ialah:
convert(cast(name as binary) using utf8)
Dengan menggunakan penyelesaian ini, anda boleh berjaya menukar aksara Latin1 yang disimpan dalam jadual UTF8 anda kepada format UTF8 yang betul, menyelesaikan isu rasuah watak. Ingat untuk melaraskan fungsi penukaran berdasarkan sifat pengubahan data yang dialami semasa proses pengekodan sebelumnya.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Aksara Latin1 kepada UTF-8 dalam Jadual MySQL UTF-8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!