Кракозябры в субтитрах: перевести SRT в UTF-8

Телевизор или плеер показывает в субтитрах Ïðèâåò или � вместо русских букв? Файл почти наверняка в Windows-1251, а устройство ждёт UTF-8. Перетащите SRT в поле – Mojibuster перекодирует его, а тайминг останется прежним.

Работает с текстом и файлами:

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

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

Исправить

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

  • Серверы в ЕС. Mojibuster работает на сервере в стране Финляндия (ЕС), поэтому действует Общий регламент по защите данных (GDPR). Текст GDPR (EUR-Lex, англ.)

Почему субтитры показываются кракозябрами

В файле SRT нигде не указано, в какой он кодировке. Большинство русских субтитров на сайтах и в раздачах сохранены в Windows-1251 – так их годами сохраняли Блокнот и редакторы субтитров. Телевизоры, медиаплееры и приложения на Android обычно читают субтитры как UTF-8 или как западную Windows-1252. Отсюда три вида ошибок:

  • Ïðèâåò вместо Привет – файл в Windows-1251 прочитан с западными настройками. Так бывает на телевизорах, купленных за границей, и в плеерах с английским интерфейсом.
  • � или пустые квадраты – плеер ждёт UTF-8 и не может прочитать байты Windows-1251. Буквы при этом целы, файл нужно только перекодировать.
  • Привет – обратный случай: файл уже в UTF-8, а в плеере вручную выбрана Windows-1251.
Субтитры в Windows-1251 на плеере с западными настройками

Кракозябры

1
00:00:01,000 --> 00:00:03,500
Ïðèâåò! Òû ãäå ïðîïàäàë?

2
00:00:04,000 --> 00:00:06,200
Æäàë òåáÿ âåñü âå÷åð.

После исправления

1
00:00:01,000 --> 00:00:03,500
Привет! Ты где пропадал?

2
00:00:04,000 --> 00:00:06,200
Ждал тебя весь вечер.

Как исправить файл субтитров

  1. Перетащите файл .srt или .vtt в поле выше.
  2. Mojibuster определит кодировку и исправит испорченные буквы. В результатах видно, как был прочитан файл.
  3. Скачайте файл и положите его рядом с видео вместо старого. Имя должно совпадать с именем видео, например film.srt для film.mkv.

Номера, тайминг вида 00:01:15,250 --> 00:01:18,000, пустые строки и теги вроде <i> не меняются – Mojibuster трогает только испорченные буквы.

Субтитры в UTF-8, а в плеере выбрана Windows-1251

Кракозябры

7
00:02:10,400 --> 00:02:13,000
Спасибо, что приехал.

После исправления

7
00:02:10,400 --> 00:02:13,000
Спасибо, что приехал.

Настройки плееров и телевизоров

  • VLC: в настройках субтитров есть параметр кодировки по умолчанию. Можно выбрать кириллицу Windows-1251, но надёжнее один раз перекодировать файл в UTF-8 – тогда он откроется везде.
  • Kodi: набор символов для субтитров задаётся в настройках проигрывателя, в разделе языка.
  • MX Player на Android позволяет выбрать кодировку в настройках субтитров. Если там стоит Windows-1251, а файл уже в UTF-8, получится Привет.
  • Plex, Jellyfin и смарт-телевизоры (Samsung, LG, Android TV) надёжнее всего читают внешние субтитры в UTF-8 – после перекодировки ничего настраивать не нужно.
  • WebVTT (.vtt) по стандарту всегда в UTF-8.

? и � в самом файле

Если вместо букв в файле стоят ? – их видно в любом редакторе, – буквы потеряны: кто-то уже пересохранил субтитры в кодировке без кириллицы. То же с �, которые остаются после перекодировки. Такие символы вернуть нельзя, Mojibuster только покажет, сколько их. Поможет лишь другая версия субтитров.

Подробнее о старых кодировках: Windows-1251, KOI8-R и CP866 в UTF-8. Почему вообще появляются кракозябры: что такое кракозябры.

Частые вопросы

Тайминг не собьётся?

Нет. Mojibuster меняет только испорченные символы – время, номера и пустые строки остаются как были.

Что делать с субтитрами .ass или .ssa?

Mojibuster не открывает их напрямую. Временно переименуйте файл в .txt, исправьте его и верните прежнее расширение.

Нужен ли субтитрам BOM?

Нет. Большинство плееров лучше работают без BOM, поэтому для SRT и VTT Mojibuster его по умолчанию не добавляет.

После перекодировки плеер всё равно показывает кракозябры?

Проверьте, не выбрана ли в плеере фиксированная кодировка. Переключите её на UTF-8 или «Авто».

Другие инструкции