Перейти до основного вмісту
SubtitleMatrix

Конвертувати кодування субтитрів

Текст і оформленняВиправлення кодування та BOM
Або вставте текст субтитрів

Параметри

Це змінює байти, а не субтитри. Кожен символ у файлі записується в обраному кодуванні, тож плеєр або скрипт, який вимагає одного кодування, отримує файл, який може прочитати. UTF-8 — те, що очікує все сучасне й що цей сайт пише всюди інде. UTF-8 з BOM — ті самі байти з трибайтовою позначкою спереду. UTF-16 LE — те, що програми Windows називають Unicode, приблизно вдвічі більше. Windows-1252 — старіше західноєвропейське кодування, один байт на символ, і з ним треба бути обережним: у ньому немає місця для китайської, японської, корейської, кирилиці, грецької чи емодзі, тож кожен символ, який він не може записати, виходить знаком питання й рахується у звіті вище. Більше нічого у файлі не змінюється.

У якій частоті кадрів пораховано таймінги. На сторінках форматів це те, що потрібно MicroDVD, бо він зберігає час як номери кадрів. На сторінках частоти кадрів це частота, за якою файл синхронізували — версія, для якої робили субтитри, — а друге поле сторінки приймає частоту відео, з яким ви будете їх використовувати. 23,976, 24, 25, 29,97, 30, 50, 59,94 і 60 — найпоширеніші. Помилка зміщує весь таймлайн, а на сторінках частоти кадрів — на відношення, а не на фіксовану величину.

Кодування файлу — це правило, що перетворює його текст на байти, і це єдина властивість файлу субтитрів, яку не видно, дивлячись на нього. Блокнот, браузер, мовний сервер і телевізор мусять знати кодування або вгадати, і коли вони вгадують по-різному, текст приходить символами, що не належать жодній мові. Ця сторінка записує файл у названому вами кодуванні, щоб читацькому кінцю не доводилося вгадувати.

Типово зберігається те, у чому файл прийшов, і це те, що потрібно здебільшого: операція на кшталт зсуву субтитрів у часі не має переписувати кодування, і файл, що був UTF-16LE на вході, лишається UTF-16LE на виході. Змінюйте це налаштування лише тоді, коли щось перед вами називає кодування — специфікація здачі, інструмент, що відмовляється від файлу, плеєр, що показує не ті символи, — або коли ви уніфікуєте теку файлів, що прийшли з різних місць.

Чотири варіанти на панелі — ті, що найчастіше питають. UTF-8 — це те, що використовують веб і більшість сучасних інструментів, і те, що кожна сторінка конвертації на сайті пише типово. UTF-8 із маркером — ті самі байти з трьома додатковими спереду, для програм Windows, які вирішують за початковими байтами. UTF-16LE — це те, що інструменти субтитрів Windows називають Unicode; він зберігає кожен символ двома байтами, тому файл виходить приблизно вдвічі більшим. Windows-1252 — старіше західноєвропейське кодування, яке досі пишуть багато європейських мовних інструментів, і воно вміщає наголоси західноєвропейських мов і більше нічого.

Останній пункт — це втрата, і саме тому сторінка повідомляє про неї до підтвердження. Збережіть японські, китайські, кириличні чи грецькі субтитри як Windows-1252 — і символи, що не мають байта в цьому кодуванні, запишуться знаками питання: файл не зламаний, але не ті символи зникли. Звіт над робочою областю рахує їх і каже скільки, і число береться з тієї самої кодової таблиці, якою пише кодувальник, тож ви читаєте саме ту кількість знаків питання, яку отримаєте. Якщо число не нуль, виберіть іншу ціль.

Дві панелі можуть виглядати однаково, і це очікувано, а не вада: кодування — властивість байтів, а панелі тримають символи. Зміна відбувається в момент запису файлу, тобто коли ви його завантажуєте. Рядок кожного файлу каже, яким кодуванням його прочитали, і додає другу позначку з кодуванням, у якому його буде записано, коли вони різні. Нічого не завантажується, і робота відбувається у вашому браузері.

Приклади

Англійський файл субтитрів, записаний як UTF-8

Вхід

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

Результат

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

Типовий варіант і кодування, яке пише кожна інша сторінка сайту. Вихід дорівнює входу, бо файл уже був UTF-8. Цей приклад закріплює негативне: вибір кодування не нормалізує нічого іншого у файлі, тому репліка не втрачає закінчень рядків, не отримує маркера й не змінює таймкоду через те, що ви відвідали сторінку.

Той самий файл, записаний як UTF-16LE

Вхід

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

Результат

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

Програми субтитрів Windows називають це Unicode, і це кодування дає найбільшу видиму різницю у файлі: кожен символ стає двома байтами, спереду з’являється маркер, а результат приблизно вдвічі більший. Нічого з цього не видно на панелях, бо вони тримають символи; різницю видно за розміром файлу у файловому менеджері та за кодуванням у редакторі.

Японські субтитри, записані як Windows-1252

Вхід

1
00:00:01,000 --> 00:00:02,000
こんにちは

Результат

1
00:00:01,000 --> 00:00:02,000
こんにちは

П’ять кана й кодування, у якому для жодної з них немає місця, тому звіт про втрати цього прогону рахує п’ять символів, що стануть знаками питання. Панелі й далі показують кану, бо заміна відбувається під час запису файлу, а не під час читання. Цей поділ навмисний: ви бачите, що каже файл, і в звіті — чим ви платите, записуючи його так.

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

Чим кодування файлу субтитрів відрізняється від його формату?

Формат — це те, як файл упорядковує номери реплік, таймкоди й текст (SRT, WebVTT, ASS тощо), і його можна прочитати. Кодування — це те, як ці символи перетворюються на байти, і воно невидиме: той самий файл SRT може зберігатися як UTF-8, UTF-16 або Windows-1252 і виглядати однаково в кожному редакторі. Ця сторінка змінює друге й лишає перше; сторінки конвертації змінюють перше.

Що стається із символами, які цільове кодування не може подати?

Вони записуються знаками питання, і сторінка каже скільки ще до завантаження. Windows-1252 покриває західноєвропейські літери й не має байта для японської, китайської, корейської, кирилиці, грецької чи емодзі, тому ці символи не виживуть у ньому в жодній формі: немає ні помилки, ні заміни, що зберігає зміст. Число у звіті про втрати — це кількість знаків питання у файлі, який ви отримаєте, порахована тією самою таблицею, якою пише кодувальник.

Чому панелі виглядають однаково, коли я змінюю кодування файлу субтитрів?

Бо панелі тримають символи, а вибір стосується байтів. Текст є текст; те, чи займає кожен символ один байт, два чи три, вирішується під час запису файлу, при завантаженні. Рядок у черзі називає кодування, яким кожен файл прочитано, і додає другу позначку, коли кодування запису інше, а ваш власний редактор покаже кодування збереженого файлу.

Яке кодування вибрати для файлу субтитрів, який я здаю?

UTF-8, якщо специфікація не каже іншого, а вона зазвичай каже. Windows-1252 поширене в європейських мовних здачах і безпечне лише для західноєвропейського тексту; UTF-16LE може вимагати інструмент авторингу, що працює тільки під Windows. Якщо файл уже був у придатному кодуванні, типове значення його зберігає — і це найбезпечніша відповідь, коли нічого не пішло не так.

Чи стане мій файл субтитрів удвічі більшим від вибору UTF-16?

Так, приблизно. Кожен символ зберігається двома байтами, тому англійський файл субтитрів на 20 КБ стає близько 40 КБ, а загальне стиснення після цього прибирає значну частину різниці. Маркер спереду додає ще два байти. Розмір — це плата за властивість, що зробила UTF-16 поширеним у Windows: кожен символ однакової ширини, з чим старому програмному забезпеченню було легше.

Чому у списку кодувань немає UTF-16 big endian?

Бо його ніхто не вибирає, а файли, що вже в ньому, усе одно обробляються. Файл, що прийшов як UTF-16 big endian, за типового налаштування записується назад як UTF-16 big endian, бо збереження вхідного кодування — це те, що сторінка робить, коли ви не називаєте іншого. Список містить чотири цілі, які справді просять; сам записувач покриває big-endian, щоб збереження файлу як був ніколи не змінювало його тихо.

Споріднені інструменти