C3 83 C6 92 C3 82 C2 AA
C3 3F C2 AA
To je to, co získáte, pokud zacházíte s posloupností bajtů jako s UTF-8 a poté ji zakódujete jako ISO-8859-1. 3F
je ?
, který byl zahrnut jako náhradní znak, protože UTF-8 C6 92
je U+0192 ƒ
který v ISO-8859-1 neexistuje. Existuje však v kódové stránce Windows 1252 Western European, což je kódování velmi podobné ISO-8859-1; tam je to bajt 0x83.
C3 83 C2 AA
Projděte si další kolo zacházení s UTF-8-bajty-a-kódování-do-cp1252 a získáte:
C3 AA
což je konečně UTF-8 pro ê
.
Všimněte si, že i když poskytujete ne-XML HTML stránku explicitně jako ISO-8859-1, prohlížeče budou ve skutečnosti používat kódování cp1252 z ošklivých historických důvodů.
Bohužel MySQL nemá kódování cp1252; latin1
je (správně) ISO-8859-1. Takže nebudete moci opravit data dumpingem jako latin1 a opětovným načtením jako utf8 (dvakrát). Skript byste museli zpracovat textovým editorem, který lze uložit jako buď (nebo např. v Pythonu file(path, 'rb').read().decode('utf-8').encode('cp1252').decode('utf-8').encode('cp1252')
).