Halaman saya sering menunjukkan hal-hal seperti ë, Ã, ì, ù, à di tempat karakter normal.
Saya menggunakan utf8 untuk header halaman dan MySQL encode. Bagaimana ini terjadi?
Ini adalah utf-8 karakter. Gunakan utf8_decode() untuk mengkonversi mereka ke normal ISO-8859-1 karakter.
Jika anda melihat orang-orang dengan karakter yang anda mungkin tidak menentukan encoding karakter dengan benar. Karena karakter-karakter tersebut adalah hasil ketika UTF-8 multi-byte string ditafsirkan dengan single-byte encoding seperti ISO 8859-1 atau Windows-1252.
Dalam hal inië
dapat dikodekan dengan 0xC3 0xAB yang mewakili karakter Unicode ë
(U+00EB) dalam UTF-8.
Meskipun utf8_decode
adalah solusi yang bermanfaat, saya lebih memilih untuk memperbaiki kesalahan encoding pada tabel itu sendiri. Menurut saya itu lebih baik untuk memperbaiki karakter diri dari membuat "hacks" dalam kode. Cukup melakukan menggantikan
pada field pada tabel. Untuk memperbaiki bad karakter dikodekan dari OP :
update <table> set <field> = replace(<field>, "ë", "ë")
update <table> set <field> = replace(<field>, "Ã", "à")
update <table> set <field> = replace(<field>, "ì", "ì")
update <table> set <field> = replace(<field>, "ù", "ù")
Di mana <table>
adalah nama tabel mysql dan <bidang>
adalah nama kolom dalam tabel. Di sini adalah sangat baik dengan check-list untuk orang-orang yang biasanya buruk dikodekan windows-1252 untuk utf-8 karakter -> Debugging Grafik Pemetaan Windows-1252 Karakter UTF-8 Byte untuk Latin-1 Karakter.
Ingat untuk backup meja anda sebelum mencoba untuk mengganti setiap karakter dengan SQL!
[Aku tahu ini adalah jawaban untuk sebuah pertanyaan kuno, tetapi menghadapi masalah ini sekali lagi. Beberapa lama mesin windows tidak dikodekan teks yang benar sebelum memasukkan ke utf8_general_ci susun tabel.]