C3 83 C6 92 C3 82 C2 AA
C3 3F C2 AA
Questo è ciò che ottieni se tratti la sequenza di byte come UTF-8, quindi la codifichi come ISO-8859-1. 3F
è ?
, che è stato incluso come carattere sostitutivo, perché UTF-8 C6 92
è U+0192 ƒ
che non esiste nella ISO-8859-1. Ma esiste nella tabella codici di Windows 1252 dell'Europa occidentale, una codifica molto simile a ISO-8859-1; lì, è il byte 0x83.
C3 83 C2 AA
Esegui un altro ciclo di tratta-come-UTF-8-byte-e-codifica-in-cp1252 e ottieni:
C3 AA
che è, infine, UTF-8 per ê
.
Tieni presente che anche se pubblichi una pagina HTML non XML esplicitamente come ISO-8859-1, i browser utilizzeranno effettivamente la codifica cp1252, a causa di cattivi motivi storici.
Sfortunatamente MySQL non ha una codifica cp1252; latin1
è (correttamente) ISO-8859-1. Quindi non sarai in grado di correggere i dati scaricando come latin1 e quindi ricaricando come utf8 (due volte). Dovresti elaborare lo script con un editor di testo che può salvare come (o ad esempio in Python file(path, 'rb').read().decode('utf-8').encode('cp1252').decode('utf-8').encode('cp1252')
).