Как изглежда двойно кодираният текст
Преди
Мляко и българско сирене – отворено в понеделник
След
Мляко и българско сирене – отворено в понеделник
Как се получава
В UTF-8 буквата й се състои от два байта. Когато програма прочете тези два байта като Windows-1251, получават се два знака: Р№. Ако резултатът се запише отново като UTF-8, от двата знака стават четири байта. Когато същото се случи и втори път, всеки знак отново се разпада – Р№ става Р в„–.
Типични причини за втория кръг:
- Базата данни се мести, а експортът от WordPress или SQL вече е бил повреден.
- CSV се отваря в Excel, записва се, а по-късно се импортира още веднъж погрешно.
- Скрипт или API преобразува текст, който вече е UTF-8.
Най-честите шаблони накратко
Двойно кодирано
Р° Рµ Р№ С‰ СЏ в„–
Правилно
а е й щ я №
При тройно кодиране е още по-дълго: й става Р в„–. Mojibuster поправя и това ниво автоматично.
Защо търсенето и замяната не стигат
При търсене и замяна трябва да знаете всеки шаблон – по един за всяко ниво и всяка буква. Лесно е да пропуснете някой или случайно да промените правилен текст. Mojibuster вместо това изчислява оригиналните байтове и проверява дали резултатът е валиден UTF-8. Едва тогава замества мястото.
- Поставете текста по-горе или плъзнете файла в полето.
- Mojibuster разпознава колко пъти е преобразуван текстът и поправя до три нива.
- Под Какво се промени? виждате всяко място. След това копирайте резултата или изтеглете файла.
Текстът, който вече е правилен, остава непроменен – дори когато в един файл са смесени повредени и правилни редове. Грешките от едно ниво, като Р№, са разгледани на страницата преобразуване от Windows-1251 в UTF-8.
Често задавани въпроси
Как да разпозная двойното кодиране?
По по-дълги последователности с повтарящи се Р и С, например Р в„–. Грешките от едно ниво са по-кратки, като Р№ – повече в статията какво е mojibake.
Колко нива може да поправи Mojibuster?
До три. Повече на практика почти не се срещат.
Какво да направя, ако само част от текста е двойно кодирана?
Няма проблем. Mojibuster поправя всяко място поотделно, а правилните части оставя недокоснати.
Мога ли да проверя резултата предварително?
Да. Под Какво се промени? Mojibuster изброява всяко поправено място с номер на реда, преди да копирате или изтеглите.