Файл цел, его неправильно прочитали
В файле субтитров хранятся байты. Чтобы превратить байты в символы, нужно знать, в какой кодировке они записаны — ошибётесь здесь, и выйдут кракозябры. Из файла не пропал ни один байт; перечитайте его в правильной кодировке, и символы вернутся.
Отсюда работа делится надвое: выяснить, с какой кодировки всё начиналось, и сохранить в кодировке, которую распознает ваш плеер. Первое — пробное чтение с оценкой, второе — новое сохранение. Они решают разные проблемы.
Пять видов, пять причин
Кракозябры не возникают случайно — их вид выдаёт причину:
- Скопления букв с ударениями (`ä½ å¥½`): китайский текст в 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-файла; кодировка в порядке, но содержимое грязное (водяные знаки, реклама, пометки для слабослышащих) — Очистка субтитров.