字 AI-SRTSub

Откуда берутся кракозябры в субтитрах

Одни и те же байты, прочитанные как UTF-8 и как GBK, дают два разных набора символов. То, как выглядят кракозябры, — прямое доказательство того, на каком шаге ошиблись.

Обновлено 2026-10-17Устранение проблем

Файл цел, его неправильно прочитали

В файле субтитров хранятся байты. Чтобы превратить байты в символы, нужно знать, в какой кодировке они записаны — ошибётесь здесь, и выйдут кракозябры. Из файла не пропал ни один байт; перечитайте его в правильной кодировке, и символы вернутся.

Отсюда работа делится надвое: выяснить, с какой кодировки всё начиналось, и сохранить в кодировке, которую распознает ваш плеер. Первое — пробное чтение с оценкой, второе — новое сохранение. Они решают разные проблемы.

Пять видов, пять причин

Кракозябры не возникают случайно — их вид выдаёт причину:

  • Скопления букв с ударениями (`ä½ å¥½`): китайский текст в UTF-8 прочитали как однобайтовую кодировку — в UTF-8 на иероглиф приходится три байта, а чтение по одному байту превращает каждый байт в отдельную букву
  • Сплошные CJK-символы, и ни одного частотного: UTF-8 прочитали как GBK — байты перегруппировались парами, и каждая пара попала на редкий иероглиф
  • Куча знаков валют и математических символов: байты попали в область символов, типично для чтения как Mac Roman или вариант Latin-1
  • Попали управляющие символы: байты попали в невидимую область управления и на экране выглядят как пустоты или квадраты
  • Вопросительный знак в рамке `�`: это символ замены, а не кракозябры — он означает «здесь был символ, и он уже потерялся при чтении»
Карточка диагностики с перечислением каждого типа следов
Диагностика сортирует по причине, а не сваливает всё в одну кучу

Почему символ замены нельзя исправить

Символ замены — это граница. Наличие `�` означает, что байты были выброшены на более раннем шаге (обычно какая-то программа прочитала файл и сохранила его заново), и о том, что пропало, не осталось записи. Тут не по чему считать назад — никто не сможет исправить.

Поэтому страница исправления обрабатывает два случая по-разному. Загрузите файл — и исходные байты целы, можно перебирать все кодировки; если же во вставленном тексте уже есть символ замены, она говорит прямо: «исправить нельзя, загрузите исходный файл».

Есть и обратный случай: содержимое читается совершенно нормально, а плеер всё равно показывает мусор. Файл тут ни при чём: плеер выбрал неправильную кодировку. Править текст бесполезно — сохраните копию в UTF-8 с BOM или GBK и отдайте её ему.

Область загрузки: перетаскивание и вставка как два входа
Загрузите файл, если можете: пока байты целы, есть что исправлять

Что именно сравнивается при исправлении

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

Если оценка не становится явно лучше, ничего не рекомендуется — лучше сказать «это читается нормально как есть», чем подсунуть результат, который лишь отдалённо напоминает язык. Дважды испорченный текст получает дополнительный проход обратного пересчёта по первым вариантам.

Список вариантов по оценке, у каждого пара кодировок
Варианты по оценке; нет явного победителя — нет рекомендации

Сохранение в правильной кодировке завершает работу

Исправленный текст всё равно нужно сохранить в кодировке, которую распознает плеер. Плееры в Windows обычно определяют кодировку по BOM, поэтому UTF-8 с BOM — самый простой вариант; старые устройства и некоторые региональные плееры требуют GBK. Можно выбрать UTF-8, UTF-8 (с BOM), GBK, Big5, Shift_JIS или EUC-KR, и если что-то не помещается, вас попросят взять другое (в GBK не помещается корейский).

Область результата: список кодировки для сохранения и кнопка скачивания
Сохраните в кодировке, которую распознает плеер, — и кракозябры исчезнут по-настоящему

Связанные инструменты и руководства

Полный порядок действий — Как исправить кракозябры в субтитрах; что на самом деле хранится в файле SRT — Что внутри SRT-файла; кодировка в порядке, но содержимое грязное (водяные знаки, реклама, пометки для слабослышащих) — Очистка субтитров.

Всё работает в браузере, ничего устанавливать не нужно.

Открыть исправление кракозябров

Похожие руководства