C3 83 C6 92 C3 82 C2 AA
C3 3F C2 AA
Itulah yang Anda dapatkan jika Anda memperlakukan urutan byte sebagai UTF-8, lalu menyandikannya sebagai ISO-8859-1. 3F
apakah ?
, yang telah dimasukkan sebagai karakter pengganti, karena UTF-8 C6 92
adalah U+0192 ƒ
yang tidak ada di ISO-8859-1. Tapi itu memang ada di halaman kode Windows 1252 Eropa Barat, pengkodean yang sangat mirip dengan ISO-8859-1; di sana, itu byte 0x83.
C3 83 C2 AA
Ikuti putaran lain dari treat-as-UTF-8-bytes-and-encode-to-cp1252 dan Anda mendapatkan:
C3 AA
yang, akhirnya, UTF-8 untuk ê
.
Perhatikan bahwa meskipun Anda menyajikan halaman HTML non-XML secara eksplisit sebagai ISO-8859-1, browser akan benar-benar menggunakan pengkodean cp1252, karena alasan historis yang buruk.
Sayangnya MySQL tidak memiliki pengkodean cp1252; latin1
adalah (dengan benar) ISO-8859-1. Jadi Anda tidak akan dapat memperbaiki data dengan membuang sebagai latin1 lalu memuat ulang sebagai utf8 (dua kali). Anda harus memproses skrip dengan editor teks yang dapat disimpan sebagai salah satu (atau misalnya di Python file(path, 'rb').read().decode('utf-8').encode('cp1252').decode('utf-8').encode('cp1252')
).