Чому субтитри показуються кракозябрами
У файлі SRT ніде не вказано, в якому він кодуванні. Більшість українських субтитрів на сайтах і торент-трекерах збережено у Windows-1251 – так їх роками зберігали Блокнот і редактори субтитрів. Телевізори, медіаплеєри й застосунки на Android зазвичай читають субтитри як UTF-8 або як західну Windows-1252. Звідси три види помилок:
Ïðèâ³òзамістьПривіт– файл у Windows-1251 прочитано із західними налаштуваннями. Так буває на телевізорах, куплених за кордоном, і в плеєрах з англійським інтерфейсом. Буквиі,ї,єтут стають³,¿,º.�або порожні квадратики – плеєр чекає UTF-8 і не може прочитати байти Windows-1251. Букви при цьому цілі, файл треба лише перекодувати.РџСЂРёРІС–С‚– зворотний випадок: файл уже в UTF-8, а в плеєрі вручну вибрано 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 Чекав на тебе цілий вечір.
Як виправити файл субтитрів
- Перетягніть файл
.srtабо.vttу поле вище. - Mojibuster визначить кодування й виправить зіпсовані букви. У результатах видно, як було прочитано файл.
- Завантажте файл і покладіть його поруч із відео замість старого. Ім’я має збігатися з назвою відео, наприклад
film.srtдляfilm.mkv.
Номери, таймінг на зразок 00:01:15,250 --> 00:01:18,000, порожні рядки й теги на кшталт <i> не змінюються – Mojibuster торкається лише зіпсованих букв.
Кракозябри
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 або «Авто».