Подвійне кодування: виправляємо кракозябри на кшталт РїСЂРёРІС–С‚

Якщо замість українського тексту ви бачите щось на кшталт РїСЂРёРІС–С‚, а після «виправлення» виходить ще дивніша суміш Р С—РЎР‚…, текст зіпсовано не раз, а двічі. Mojibuster скасовує обидва кроки — навіть якщо зіпсовано лише частину тексту.

Працює з текстом і файлами:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • SMI
  • TSV
  • MD
  • HTML
  • SQL
  • LOG

Наприклад, вивантаження з Excel і 1С, дампи баз даних, субтитри або код сайтів.

Виправити

  1. Перетягніть файл або вставте текст
  2. Виправлення відбувається автоматично
  3. Скопіюйте або завантажте
або просто перетягніть файл сюди
  • Без надсилання на сервер. Файли виправляються прямо в браузері й не залишають ваш пристрій.

  • Сервери в ЄС. Mojibuster працює на сервері в країні Фінляндія (ЄС), тому діє Загальний регламент про захист даних (GDPR). Текст GDPR (EUR-Lex, англ.)

Як виглядає подвійне кодування

Речення, двічі прочитане в неправильному кодуванні

До

Добрий день, товар готовий до відправки

Після

Добрий день, товар готовий до відправки

Як це трапляється

В UTF-8 кожна українська літера займає два байти. Якщо програма прочитає ці байти як Windows-1251, замість однієї літери вийдуть два символи: «п» перетвориться на Рї. Зберігши результат знову в UTF-8, програма перетворює кожен із цих символів на нову пару байтів. Якщо те саме станеться ще раз, текст стане вдвічі-втричі довшим і зовсім нечитабельним.

Типові причини другого кола псування:

  • Базу даних переносять на новий сервер, а дамп MySQL чи WordPress уже був зіпсований раніше.
  • CSV відкрили в Excel, зберегли й пізніше ще раз імпортували з неправильним кодуванням — докладніше на сторінці про CSV в Excel.
  • Скрипт, API чи плагін «перекодовує» текст, який уже в UTF-8.

Найпоширеніші випадки

Подвійне кодування

Р В°
Р С•
С”
С—
С–
Р В¶

Правильно

а
о
є
ї
і
ж

У разі потрійного кодування рядок стає ще довшим. Mojibuster автоматично виправляє й цей рівень — до трьох рівнів включно.

Чому пошуку й заміни замало

Під час ручної заміни треба знати кожен шаблон — окремий для кожної літери й кожного рівня. Якийсь легко пропустити, а можна й випадково зіпсувати правильний текст. Mojibuster діє інакше: він обчислює вихідні байти й перевіряє, чи вийде коректний UTF-8. Лише тоді фрагмент замінюється.

  1. Вставте текст або перетягніть файл у поле вище.
  2. Mojibuster визначить, скільки разів текст було зіпсовано, і виправить до трьох рівнів.
  3. У блоці Що змінилося? видно всі виправлені місця. Після цього скопіюйте результат або завантажте файл.

Правильний текст залишається недоторканим — навіть якщо в одному файлі змішано справні й зіпсовані рядки. Звичайні однорівневі кракозябри на кшталт РїСЂРёРІС–С‚ описано на сторінці «Що таке кракозябри».

Часті запитання

Як зрозуміти, що це подвійне кодування?

За довгими послідовностями на кшталт Р С—РЎР‚ з пробілами та знаками ‚. Однорівневе псування коротше: РїСЂРёРІС–С‚. Якщо після першого виправлення кракозябри лишаються, рівнів було більше.

Скільки рівнів може виправити Mojibuster?

До трьох. Більше на практиці майже не трапляється.

А якщо подвійне кодування лише в частині тексту?

Це не проблема. Mojibuster виправляє кожне місце окремо, а правильні частини не чіпає.

Чи можна спершу перевірити результат?

Так. У блоці Що змінилося? Mojibuster показує кожне виправлене місце з номером рядка — до того, як ви скопіюєте текст чи завантажите файл.

Інші інструкції