Перейти к содержанию

Детектор кодировки

Угадайте исходную кодировку искаженного текста и восстановите ее.

Входные данные

Детектор кодировки

Вставьте текст, в котором буквы с диакритическими знаками превратились в строки, например «PrĂliš» или «GrĂ¶ĂŸe», и этот инструмент угадает, что пошло не так. Обычной причиной является открытие, сохранение или передача файла UTF-8 через что-то, что предполагает однобайтовую кодовую страницу — Windows-1250 или ISO-8859-2 для текста из Центральной Европы, Windows-1252 для текста из Западной Европы. Каждый символ с акцентом изначально состоял из двух или трех байтов UTF-8; читая по одному байту под неправильной кодовой страницей, они становятся именно таким двойным мусором.

Детектор работает, пробуя перевернуть каждую кодовую страницу-кандидат и проверяя, является ли результат правильно сформированным UTF-8 — структурный тест, который правильно закодированный текст практически никогда не проходит случайно, поэтому автоматическое обнаружение может применить исправление с реальной уверенностью, а не подбрасыванием монеты. Когда он находит совпадение, он показывает предполагаемую исходную кодировку, предполагаемую неправильно прочитанную кодировку и восстановленный текст, а также количество символов, удаленных исправлением (mojibake всегда длиннее текста, из которого он получен, поскольку раньше каждого сломанного символа было несколько).

Автоматическое обнаружение только предполагает проверяемое направление — UTF-8 отображается на неправильной кодовой странице. Более редкий обратный случай, файл Windows-1250 или ISO-8859-2, читаемый как Latin-1, не имеет эквивалентной структурной проверки, поэтому он предлагается в качестве ручного варианта в раскрывающемся списке, когда вы уже подозреваете, что именно это произошло, а не догадываетесь молча. Это эвристический инструмент, а не гарантия: текст, смешанный с несколькими языками или содержащий символы за пределами диапазона целевой кодовой страницы, может оказаться невосстанавливаемым, и он прямо говорит об этом вместо того, чтобы возвращать уверенный неправильный ответ.

Все работает локально в вашем браузере с использованием тех же таблиц кодировки, которые браузеры используют для отображения веб-страниц — ничего, что вы вставляете, никуда не загружается, что здесь важнее, чем большинство инструментов, поскольку искаженный текст часто происходит из реальных записей клиентов, экспортированных баз данных или заявок в службу поддержки.

FAQ

Как он узнает, какая кодировка использовалась?
Он перекодирует искаженный текст под каждой потенциальной кодовой страницей и проверяет, образуют ли полученные байты действительный UTF-8. Правильно закодированный текст, по сути, никогда не проходит эту проверку случайно, поэтому совпадение является надежным признаком того, что произошло — не факт, но близко.
Почему автоопределение не предлагает исправить "читать как латиницу-1"?
Это направление не имеет эквивалентного способа проверки — многие значения байтов являются допустимыми буквами более чем в одной кодовой странице, поэтому оно может создавать правдоподобный, но неправильный текст. Выберите его вручную из раскрывающегося списка, когда вы уже знаете, что это так.
Может ли он исправить текст с помощью эмодзи или смешанных языков?
Только если каждый символ в тексте принадлежит кодовой странице-кандидату. Один эмодзи или символ вне этого диапазона означает, что всю строку нельзя перевернуть, и инструмент оставляет ее неизменной, а не угадывает.
Это гарантированно правильно?
Нет — это эвристика, а не сертифицированный преобразователь. Он очень надежно распознает подлинный моджибаке с устаревшей кодовой страницей UTF-8 и прямо скажет, когда не может найти безопасное решение, вместо того, чтобы возвращать уверенный неправильный ответ.
Мой текст где-нибудь загружен?
Нет. Обнаружение и восстановление полностью выполняются в вашем браузере с использованием тех же таблиц кодировки, которые он уже использует для рендеринга веб-страниц — текст никогда не покидает ваше устройство.