Кракозябри в субтитрах: перекодувати 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-U в UTF-8. Чому взагалі з’являються кракозябри: що таке кракозябри.

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

Таймінг не зіб’ється?

Ні. Mojibuster змінює лише зіпсовані символи – час, номери й порожні рядки залишаються як були.

Що робити із субтитрами .ass або .ssa?

Mojibuster не відкриває їх напряму. Тимчасово перейменуйте файл на .txt, виправте його й поверніть попереднє розширення.

Чи потрібен субтитрам BOM?

Ні. Більшість плеєрів краще працюють без BOM, тому для SRT і VTT Mojibuster за замовчуванням його не додає.

Після перекодування плеєр однаково показує кракозябри?

Перевірте, чи не вибрано в плеєрі фіксоване кодування. Перемкніть його на UTF-8 або «Авто».

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