Во-первых, используйте шрифт, содержащий символы для всех языков (фактически, скриптов), которые вы хотите использовать, например, Arial. В противном случае символы, которых нет в шрифте, будут отображаться в виде квадратов.
Теперь вам нужно правильно настроить кодировку, иначе вы получите неправильные / ненужные символы, как вы упомянули. У вас есть 3 варианта:
1. Видео с субтитрами, закодированное в самом видео
Это самое простое, если вы можете получить это ...
2. Субтитры в языковой кодировке, например Windows-1255 (иврит) или Windows-1251 (русский)
- Используйте субтитры, которые закодированы в кодировке для конкретного языка - большинство в настоящее время.
- Сообщите вашему проигрывателю / фильтру DirectShow, в какую кодировку кодируются субтитры. В [VLC] установите его в Сервис -> Настройки ... -> Субтитры и OSD -> Кодировка по умолчанию. Вам придется устанавливать его каждый раз - не весело.
- Если у вашего плеера / фильтра DirectShow такой опции нет, вам придется сообщить об этом через не-английский язык поддержки системы и перезагрузить компьютер. Еще меньше веселья.
3. Субтитры в [UTF-8] - путь будущего
- Используйте проигрыватель / фильтр DirectShow, который может отображать субтитры UTF-8, например, VLC или [DirectVobSub].
- Используйте субтитры, которые закодированы в UTF-8.
К сожалению, большинство доступных субтитров в настоящее время не кодируются в UTF-8. Вы можете конвертировать их:
а. Если ваши субтитры являются внешними, используйте программное обеспечение, такое как [iconv] ([версия для Windows]) или [SubtitleEdit]. Убедитесь, что вы используете правильную исходную кодировку (Windows-1255 для иврита и Windows-1251 для русского языка) и целевую кодировку (UTF-8).
б. Если ваши субтитры являются внутренними для вашего видеофайла, вам нужно сначала извлечь их. Для файлов MKV используйте [mkvtoolnix], чтобы извлечь субтитры, преобразовать их, как в "а" выше, и упаковать их обратно в MKV. Для других контейнеров видеофайлов используйте соответствующие инструменты.