Субтитри у VLC спотворені / неправильні символи: виправлення кодування

Проблеми із субтитрами Оновлено: Застосовується до: All platforms · VLC 3.0.x

Спотворені субтитри — знаки питання, чорні ромби або стіна безглуздих символів — це проблема текстового кодування, а не пошкоджений файл субтитрів. Файл субтитрів нормальний; VLC декодує його з неправильним набором символів. Це надзвичайно поширено із застарілими файлами SRT, збереженими як Windows-1252 або Central European, і так само поширено з файлами UTF-16. Одна зміна налаштування виправляє це глобально; перевизначення для окремого файлу — миттєво.

Чому це відбувається?

  • Неправильне кодування за замовчуванням у VLC — VLC припускає UTF-8; застарілі файли у Windows-1251/1252/GBK читаються неправильно.
  • Субтитри у кодуванні UTF-16 — деякі засоби зберігають SRT як UTF-16 із BOM; автовизначення VLC іноді обирає неправильний бік.
  • UTF-8 без BOM із вмістом китайською/кирилицею — без BOM VLC може вгадати застарілу кодову сторінку.
  • ASS/SSA із непідтримуваними заголовками charset — файл оголошує одне кодування, а містить інше.

Як виправити

Спосіб 1Виправте відтворення субтитрів (кодування)

Забезпечує правильне відображення субтитрів

  1. Перейдіть до Інструменти > Налаштування > Субтитри (у розділі «Субтитри / OSD»).

    Відкриваються налаштування субтитрів.

  2. Встановіть «Типове кодування» на UTF-8 — а якщо не спрацює, спробуйте Windows-1252, Windows-1251 (кирилиця) або кодову сторінку вашої мови (або спробуйте Windows-1252 / Central European для старих файлів).

    Текст декодується правильно.

  3. Натисніть Зберегти й відкрийте відео знову.

    Субтитри відтворюються з новими налаштуваннями.

ПриміткаПеревизначення для окремого файлу: клацніть відео правою кнопкою > Субтитри > Доріжка субтитрів, щоб вибрати доріжку; використовуйте клавіші G та H для точного налаштування часу.

Спосіб 2Перевизначте кодування для одного файлу (швидкий тест)

Виправляє поточний файл за 10 секунд — і визначає правильну кодову сторінку

  1. Під час відтворення перейдіть до Субтитри > Доріжка субтитрів (меню правої кнопки) — відкрийте підменю «Кодування символів», якщо доступне.

    Зʼявляються опції кодування.

  2. Перебирайте UTF-8, Windows-1252, Windows-1251, доки текст не стане читабельним.

    Знайдено правильне кодування.

  3. Запишіть працююче кодування і встановіть його як типове в налаштуваннях.

    Майбутні файли цього типу декодуються правильно.

ПриміткаVLC 3.0 показує вибір кодування для кожної доріжки через Субтитри > Кодування символів на деяких платформах; на інших використовуйте глобальне типове.

Спосіб 3Збережіть субтитри повторно як UTF-8

Постійне виправлення на рівні файлу

  1. Відкрийте .srt у Notepad++ (або VS Code / будь-якому редакторі з керуванням кодуванням).

    Файл відкривається, можливо, спотворений.

  2. Меню > Кодування > Перетворити на UTF-8 (без BOM — теж нормально).

    Файл перетворено.

  3. Збережіть, перезавантажте відео у VLC.

    Субтитри рендеряться правильно скрізь, на будь-якому пристрої.

ПриміткаПеретворення на UTF-8 робить субтитри переносимими — VLC, телевізори, телефони та веб-програвачі надійно працюють з UTF-8.

Спосіб 4Відновіть налаштування VLC за замовчуванням

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

  1. Повністю закрийте VLC.

    Жоден процес VLC не запущено.

  2. Відкрийте командний рядок (Win+R → cmd) або термінал.

    Доступний командний рядок.

  3. Виконайте: vlc --reset-config (Windows/Linux) — у macOS натомість видаліть ~/Library/Preferences/org.videolan.vlc.

    Налаштування VLC повертаються до типових.

  4. Запустіть VLC і застосуйте повторно лише ті налаштування, які вам справді потрібні.

    VLC запускається з чистими налаштуваннями.

ПриміткаЦе стирає всі власні налаштування (зокрема ярлики та скіни). Експортуйте свою конфігурацію заздалегідь у Інструменти > Налаштування > Усе > Інтерфейс, якщо хочете зробити резервну копію.

Додаткові способи

Спосіб 1Виправте ASS-файли з неправильними заголовками charset

Обробляє стилізовані субтитри, що ігнорують налаштування кодування

  1. Відкрийте .ass файл у текстовому редакторі та перевірте заголовок «Script Info» на рядок charset.

    Заголовок видно.

  2. Якщо файл містить російську/китайську мову в іншому як UTF-8 заголовку, збережіть його повторно як UTF-8 і видаліть будь-який рядок перевизначення charset.

    Заголовок збігається зі вмістом.

  3. Перезавантажте у VLC — стиль ASS тепер застосовується з правильним текстом.

    Стилізовані субтитри читабельні.

ПриміткаASS-файли містять власні метадані шрифту та charset; коли вони конфліктують, файл треба виправити — VLC слідує заголовку.

Як уникнути в майбутньому

  • За замовчуванням зберігайте субтитри як UTF-8.
  • Використовуйте засоби (subliminal, subdownloader), що виводять UTF-8.
  • Якщо редагуєте субтитри вручну, зберігайте BOM або переконайтеся, що редактор записує UTF-8.

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

Чому мої субтитри показують квадратики (□) у VLC?
Квадратики означають, що у шрифту бракує гліфів для символів, або кодування неправильне. Спочатку виправте кодування; якщо квадратики лишаються з правильним кодуванням, шрифту бракує письма — змініть шрифт субтитрів у налаштуваннях.
Чи підтримує VLC китайські, кириличні чи арабські субтитри?
Так, за наявності шрифту, що охоплює письмо. Кодування має бути UTF-8 (або відповідна кодова сторінка). Для арабської/івриту також увімкніть опцію RTL у налаштуваннях субтитрів.
Субтитри виглядають нормально в Блокноті, але спотворені у VLC — чому?
Блокнот автовизначає кодування; VLC використовує свій налаштований типовий. Встановіть типове кодування VLC відповідно до фактичного кодування файлу.
Спотворений текст лише у повноекранному режимі?
Це незвично і вказує на рендерер, а не на кодування. Перемкніть модуль виведення відео або оновіть драйвер GPU.

Підсумок

Виправте відтворення субтитрів (кодування) — Забезпечує правильне відображення субтитрів. If it does not help, work through the remaining fixes in order: each targets a different layer of the problem. Most users resolve this issue by fix 3 at the latest. Keep VLC updated (current stable: 3.0.23) and revisit this guide when a new VLC version ships.