C3 83 C6 92 C3 82 C2 AA
C3 3F C2 AA
Det er, hvad du får, hvis du behandler sekvensen af bytes som UTF-8 og derefter koder den som ISO-8859-1. 3F
er ?
, som er inkluderet som et erstatningstegn, fordi UTF-8 C6 92
er U+0192 ƒ
som ikke findes i ISO-8859-1. Men det findes i Windows kodetabel 1252 vesteuropæisk, en kodning, der ligner ISO-8859-1 meget; der er det byte 0x83.
C3 83 C2 AA
Gå gennem endnu en omgang treat-as-UTF-8-bytes-and-encode-to-cp1252, og du får:
C3 AA
som endelig er UTF-8 for ê
.
Bemærk, at selvom du eksplicit viser en HTML-side uden XML som ISO-8859-1, vil browsere faktisk bruge cp1252-kodningen på grund af grimme historiske årsager.
MySQL har desværre ikke en cp1252-kodning; latin1
er (korrekt) ISO-8859-1. Så du vil ikke være i stand til at rette op på dataene ved at dumpe som latin1 og derefter genindlæse som utf8 (to gange). Du skal behandle scriptet med en teksteditor, der kan gemme som enten (eller f.eks. i Python file(path, 'rb').read().decode('utf-8').encode('cp1252').decode('utf-8').encode('cp1252')
).