Jak vypadá dvojitě zakódovaný text
Před
PĹ™ĂÂliš ĹľluĹĄouÄŤkĂ˝ kĹŻl ĂşpÄ›l ďábelskĂ© Ăłdy – otevĹ™eno od pondÄ›lÄ‚Â
Po
Příliš žluťoučký kůl úpěl ďábelské ódy – otevřeno od pondělí
Jak k tomu dochází
V UTF-8 jsou česká ě a č tvořena dvěma bajty. Když je program přečte jako Windows-1250, vzniknou dva znaky: Ä›. Pokud se tento výsledek znovu uloží jako UTF-8, z jednoho znaku jsou čtyři bajty. Při druhém takovém kole se každý z těchto znaků rozpadne znovu – Ä› se změní na Ä›.
Typické spouštěče druhého kola:
- Databáze se migruje a export z WordPressu nebo SQL dump byl poškozený už předtím.
- Soubor CSV se otevře v Excelu, uloží a později se znovu špatně naimportuje.
- Skript nebo API převádí text, který už je v UTF-8.
Nejčastější vzory na první pohled
Dvojitě zakódováno
ě č ř ž á ů ť €
Správně
ě č ř ž á ů ť €
Při trojitém kódování je řetězec ještě delší: ě se změní na Ä›. Mojibuster opraví i tuto úroveň automaticky.
Proč nestačí najít a nahradit
U funkce najít a nahradit byste museli znát každý vzor – zvlášť pro každou úroveň a každé české písmeno. Snadno něco přehlédnete nebo omylem změníte správný text. Mojibuster naopak spočítá původní bajty a ověří, zda je výsledek platné UTF-8. Teprve potom místo nahradí.
- Vložte text výše nebo přetáhněte soubor do pole.
- Mojibuster pozná, kolikrát byl text převeden, a opraví až tři úrovně.
- V seznamu změn uvidíte každé místo. Poté výsledek zkopírujte nebo stáhněte soubor.
Text, který je už správně, zůstane beze změny – i když se v jednom souboru mísí poškozené a správné řádky. Jednoúrovňové chyby jako Ä› popisuje stránka převod Windows-1250 na UTF-8.
Časté otázky
Jak poznám dvojité kódování?
Podle delších řetězců s Ă„, †nebo Äą. Jednoúrovňové chyby jsou kratší, například Ä› místo ě – více na stránce co je mojibake.
Kolik úrovní dokáže Mojibuster opravit?
Až tři. Víc se v praxi stává jen výjimečně.
Co když je dvojitě zakódovaná jen část textu?
To nevadí. Mojibuster opraví každé místo zvlášť a správné části nechá beze změny.
Můžu si výsledek před stažením zkontrolovat?
Ano. Mojibuster vypíše každé opravené místo s číslem řádku, než text zkopírujete nebo soubor stáhnete.