Перейти к основному содержимому
SubtitleMatrix

Исправить кодировку субтитров

Текст и оформлениеИсправление кодировки и BOM
Или вставьте текст субтитров

Параметры

Это меняет то, как файл читается, а не то, что записывается. Обычно кодировка определяется по первым байтам: BOM, если он есть, UTF-8, если файл корректен как UTF-8, иначе Windows-1252. Для западноевропейских файлов это верно, для всего остального — нет, и японский, китайский, корейский или кириллический файл приходит экраном акцентированной бессмыслицы. Укажите кодировку здесь — и догадки пропускаются. «Определять автоматически» — значение по умолчанию, которое ничего не делает, поэтому его безопасно оставить. Учтите, что результат записывается обратно в UTF-8: браузеры умеют создавать лишь несколько кодировок, и ни одной из этого списка среди них нет. В этом и смысл страницы — текст выходит правильным и в форме, которую читает любой инструмент.

В какой частоте кадров считается тайминг. На страницах форматов это то, что нужно MicroDVD: он хранит время в номерах кадров. На страницах частоты кадров это частота, по которой файл был рассчитан, — версия, для которой делались субтитры, — а второе поле страницы принимает частоту видео, с которым вы будете их использовать. Обычные значения: 23,976, 24, 25, 29,97, 30, 50, 59,94 и 60. Ошибка сдвигает весь таймлайн, а на страницах частоты кадров — на коэффициент, а не на фиксированную величину.

Иногда файл субтитров открывается как экран символов, не принадлежащих ни одному языку: файл при этом не испорчен и текст не пропал, просто программа применила к байтам не то правило, и вышедшие знаки — это те же байты под другим правилом, а эта страница позволяет назвать правило самому и применяет его до того, как файл начнут разбирать как субтитры.

По умолчанию стоит auto: определение работает ровно так же, как раньше, поэтому файл, который читается правильно, от этой страницы не меняется. Если выбрать конкретную кодировку, файл читается ею, и это именно чтение, а не правка: байты не меняются, номера реплик, таймкоды и переводы строк остаются своими, а меняются только знаки, которые из этих байтов получаются.

Одно ограничение браузера стоит знать заранее: азиатские кодировки он умеет читать, но не умеет записывать, поэтому файл, исправленный как Shift-JIS, GBK, Big5 или EUC-KR, сохраняется в UTF-8, и если ниже по цепочке требуют исходную кодировку, переконвертируйте файл настольным инструментом. Принимаются все двенадцать форматов, и ничего не отправляется на сервер.

Примеры

Автоматическое определение на файле, который читается правильно

Вход

1
00:00:01,000 --> 00:00:02,000
The room is dark.

2
00:00:03,000 --> 00:00:04,000
A cold night.

Выход

1
00:00:01,000 --> 00:00:02,000
The room is dark.

2
00:00:03,000 --> 00:00:04,000
A cold night.

Значение по умолчанию и единственное, которое ничего не требует: при выборе auto кодировка не названа, поэтому файл читается точно так же, как до появления этой страницы. Поэтому открывать её на файле, в котором вы не уверены, безопасно: если всё было в порядке, ничего не произойдёт. К этому же значению стоит возвращаться, если конкретный выбор сделал хуже.

Тот же файл, прочитанный как Shift-JIS

Вход

1
00:00:01,000 --> 00:00:02,000
こんにちは、いい天気ですね。

Выход

1
00:00:01,000 --> 00:00:02,000
こんにちは、いい天気ですね。

Один и тот же файл, прочитанный двумя способами. То, что оказывается в панели после чтения байтов как Shift-JIS, — японский текст, который в них и был; при чтении как западноевропейского те же байты дают строку посторонних букв с диакритикой, и именно это состояние приводит людей на эту страницу. В примере обе панели показывают читаемый вариант, потому что перечитывание происходит до разбора субтитров: на странице нет шага, где на экране были бы неправильные знаки вместо правильных.

Западноевропейский файл, который автоопределение читает как UTF-8

Вход

1
00:00:01,000 --> 00:00:02,000
Café Ã la carte

Выход

1
00:00:01,000 --> 00:00:02,000
Café Ã la carte

Трудный случай и единственный, где auto и названная кодировка расходятся в браузере. Байты файла случайно образуют корректную последовательность UTF-8, поэтому догадка — UTF-8, и переданные знаки не те, что записаны в файле. Явное указание ISO-8859-1 заставляет прочитать файл как западноевропейский. Таблица кодировки в обоих случаях одна и та же — это и есть часть, которую легко понять неправильно по старой документации: выбор отменяет догадку, а не меняет таблицу.

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

Почему в субтитрах вместо текста странные символы?

Потому что байты прочитали по неверному правилу. В файле лежит японский, корейский или кириллический текст в кодировке той программы, которая его записала, а программа, открывшая файл, предположила другое — очень часто локальную кодовую страницу машины, а не кодировку файла. Ничего не испорчено: те же байты под правильным правилом дают правильный текст, и именно это делает выбор кодировки на этой странице.

Как узнать, в какой кодировке на самом деле файл субтитров?

Обычно по тому, чем он создан. Японский файл из японского инструмента Windows скорее всего Shift-JIS, китайский с материка — GBK, с Тайваня — Big5, корейский — EUC-KR, а кириллица чаще всего Windows-1251. Если это неизвестно, попробуйте по очереди: неверный выбор даёт символы, правильный — текст, поэтому файл опознаётся за несколько секунд без всякого знания о нём.

Что будет, если выбрать неверную кодировку для субтитров?

Знаки станут другим набором неверных знаков, и больше ничего не произойдёт: исходный файл на диске не тронут, никуда ничего не отправлено и не сохранено. Попробовать ещё раз ничего не стоит. Единственный исход, за которым стоит следить, — файл читается правильно, но в начале первой строки видна подозрительно длинная вереница символов: значит, в файле есть отметка BOM, и выбранная кодировка прочитала её как знаки.

Почему исправленный файл сохраняется в UTF-8, хотя я выбрал Shift-JIS?

Потому что браузер эту кодировку читает, но не записывает. Файл, прочитанный как Shift-JIS, GBK, Big5 или EUC-KR, записывается обратно в UTF-8, где помещается каждый содержащийся в нём знак и которую ждёт почти всё современное программное обеспечение. Текст субтитров — ровно тот, что вы видите в панели; изменился только контейнер. Если ниже по цепочке нужна исходная кодировка, переконвертируйте исправленный файл настольным инструментом.

Меняет ли исправление кодировки текст субтитров?

Нет. Байты файла не изменяются, и ни один знак не добавляется, не удаляется и не заменяется; меняется правило, по которому эти байты превращаются в текст, а всё после этого шага работает уже с правильным текстом. Номера реплик, таймкоды и переводы строк — собственные у файла, ровно как и на любой другой странице операций.

Достаточно ли автоматического определения кодировки?

Для большинства файлов достаточно, и поэтому оно стоит по умолчанию: файл, который читается правильно, не должен требовать от вас никаких указаний. Кодировку задают, когда текст явно неверен, когда известно, чем создан файл, или когда пакет пришёл из одного источника и должен читаться единообразно. Один случай, где это не поможет: файл в кодировке, декодера для которой у браузера нет вовсе, — он останется неверным при любом выборе.

Похожие инструменты