Я загрузил греческий субтитр для фильма, и это то, что я вижу, когда открываю его с помощью Gedit.
Субтитры прекрасно работают на VLC, все отлично. Но что, если я захочу отредактировать этот подзаголовок несколькими греческими словами? Я сразу получаю ошибку о кодировке символов.
Я нажимаю «повторить», а затем VLC не распознает субтитры ...
Однако из скриншотов видно, что ваш .srtфайл не закодирован в Unicode.
Оказывается, кодировка файла iconvменяется на UTF-8, но преобразованный файл все равно будет иметь те же символы, которые вы видите при открытии в Gedit.
Решение, которое я нашел, состоит в следующем:
Откройте Gaupol и перейдите в меню Файл → Открыть или нажмите кнопку Открыть .
В нижней части открытого окна находится меню выбора под названием « Кодировка символов» . Нажмите на Другое ... (последний вариант).
Выберите подходящую кодировку для вашего файла, например, греческий ISO-8859-7 , и нажмите кнопку « Принять» .
Теперь откройте ваш .srtфайл и убедитесь, что все символы правильно отображаются. В противном случае повторите вышеописанную процедуру с другой кодировкой. Вы можете запустить команду, file -bi yourfile.srtчтобы определить правильную кодировку вашего файла (хотя я читал, что результаты не обязательно точны).
Открыв файл субтитров в правильной кодировке символов, перейдите в меню « Файл» → « Сохранить как ...» и измените параметр кодировки символов (снова в нижней части окна) на UTF-8 и сохраните файл (возможно, с новое имя, для безопасности).
Эта же процедура добавления кодовой страницы будет работать для Gedit . И все же я оставляю инструкции для Gaupol, поскольку этот вопрос касается файлов субтитров.
У меня уже есть гауполь, и он показывает такие слова, как мои скриншоты раньше (нечитаемыми буквами). И, как я уже говорил, если я установлю UTF-8 в качестве новой кодировки, VLC не распознает субтитры ..
Леон Витанос,
вам придется изменить кодировку, прежде чем вы сможете редактировать и брить как utf-8
carnendil
Не могли бы вы быть более конкретным? Yoy означает изменить кодировку через сохранить как? Вы имеете в виду изменить кодирование через терминал с помощью «iconv»? Оба попробовали, VLC не распознает субтитры после этого
Леон Витанос
Извините, я должен был получить некоторые греческие субтитры, чтобы проверить. Действительно, iconvизменяется кодировка символов, но программа не будет заменять символы, которые отображаются при открытии как UTF-8. Пожалуйста, проверьте мой обновленный ответ. Приветствия.
Открыв их в редакторе Kate, вы можете увидеть правильный текст, если вам все еще нужно открыть их из Gedit, другими словами, навсегда изменить кодификацию, запустите указанную выше команду терминала.
iconvдля того, что я смог поэкспериментировать, изменит кодировку файла, но не заменит какое-либо содержимое, то есть только символы, совпадающие между исходной и целевой кодировками, будут отображаться правильно, все остальные будут отображаться согласно как целевая кодировка понимает их. Смотрите мой ответ и их комментарии.
Карнендил
thnks @carnendil то, что я сказал, это то, что это изменяет кодификацию, потому что я тоже грек (английский, а не родной язык), очевидно, я имел в виду кодирование и только в выходном файле вход по-прежнему находится в каталоге, но вы можете быть достаточно любезны, чтобы реализовать это в скрипте bash? я должен пойти для цикла "для do. iconv ... done"?
Биллибадас
что-то типа ответа, обратите внимание, что все равно придется изменить кодировку на utf-8 из настроек видеоплеера #! / bin / bash для файла в * .srt do iconv -f ISO-8859-7 -t UTF-8 -o "$ file.new" "$ file" && mv -f "$ file.new" "$ file" сделано
billybadass
3
Я бы порекомендовал enca. В отличие от gaupol, вы можете обрабатывать не только файлы субтитров, но и любой текстовый файл.
Установите энка:
sudo apt-get install enca
Чтобы выяснить кодировку файла, посмотрите, может ли enca его угадать:
enca <file>
или, если это не удается, и вы знаете язык текстового файла, чем запустить, например,
enca -L ru <file>
и посмотрим, что это тебе даст. Получить список поддерживаемых языков от man enca.
Я бы порекомендовал конвертировать в UTF-8, вы можете сделать это, запустив
Проблема в том, что Gedit (и многие другие приложения linux) неправильно распознают кодировку текста. С другой стороны, VLC, скорее всего, настроен на его правильное распознавание (через вкладку «Настройки субтитров»), и поэтому у вас нет никаких проблем. Решение простое:
Вы не открываете файл, дважды щелкнув по нему, но через диалоговое окно «Открыть» Gedit . Там внизу слева вы можете найти a drop-down for Encoding, в котором «Автоматически обнаружен» выбран по умолчанию. Установите для него «Windows-1253» или «ISO-8859-7», и все готово, файл открывается правильно (и вы можете сохранить его в UTF-8, чтобы избежать проблем в будущем)
Aegisub - это еще один редактор субтитров, который позволяет конвертировать в различные форматы (и поставляется с множеством функций) . Его родной формат (.ass) поддерживается VLC Media Player, а также MPlayer, и его преобразование должно решить проблемы с кодировкой.
Для перевода файлов SRT вы также можете использовать DualSub . Это с открытым исходным кодом (GPLv3) и кроссплатформенный. Он использует Google Переводчик.
Для общей информации, теперь есть subtitle-index.org , он концентрирует множество субтитров, ранжирует их по нескольким критериям (длительность, проверка орфографии, доступность, кодирование) и предлагает лучший из них для прямой загрузки в формате UTF-8.
Работая довольно хорошо, это позволяет избежать проблем с кодированием, которые являются довольно общими и раздражающими.
Это функция Python3 для преобразования любых текстовых файлов, включая субтитры, в файлы с кодировкой UTF-8.
def correctSubtitleEncoding(filename, newFilename, encoding_from='ISO-8859-7', encoding_to='UTF-8'):
with open(filename, 'r', encoding=encoding_from) as fr:
with open(newFilename, 'w', encoding=encoding_to) as fw:
for line in fr:
fw.write(line[:-1]+'\r\n')
iconv
изменяется кодировка символов, но программа не будет заменять символы, которые отображаются при открытии как UTF-8. Пожалуйста, проверьте мой обновленный ответ. Приветствия.Открыв их в редакторе Kate, вы можете увидеть правильный текст, если вам все еще нужно открыть их из Gedit, другими словами, навсегда изменить кодификацию, запустите указанную выше команду терминала.
источник
iconv
для того, что я смог поэкспериментировать, изменит кодировку файла, но не заменит какое-либо содержимое, то есть только символы, совпадающие между исходной и целевой кодировками, будут отображаться правильно, все остальные будут отображаться согласно как целевая кодировка понимает их. Смотрите мой ответ и их комментарии.Я бы порекомендовал
enca
. В отличие от gaupol, вы можете обрабатывать не только файлы субтитров, но и любой текстовый файл.Установите энка:
Чтобы выяснить кодировку файла, посмотрите, может ли enca его угадать:
или, если это не удается, и вы знаете язык текстового файла, чем запустить, например,
и посмотрим, что это тебе даст. Получить список поддерживаемых языков от
man enca
.Я бы порекомендовал конвертировать в UTF-8, вы можете сделать это, запустив
или, опять же, если
enca
не можете угадать язык поЭто должно делать свое дело.
источник
Проблема в том, что Gedit (и многие другие приложения linux) неправильно распознают кодировку текста. С другой стороны, VLC, скорее всего, настроен на его правильное распознавание (через вкладку «Настройки субтитров»), и поэтому у вас нет никаких проблем. Решение простое:
Вы не открываете файл, дважды щелкнув по нему, но через диалоговое окно «Открыть» Gedit . Там внизу слева вы можете найти a
drop-down for Encoding
, в котором «Автоматически обнаружен» выбран по умолчанию. Установите для него «Windows-1253» или «ISO-8859-7», и все готово, файл открывается правильно (и вы можете сохранить его в UTF-8, чтобы избежать проблем в будущем)источник
Aegisub - это еще один редактор субтитров, который позволяет конвертировать в различные форматы (и поставляется с множеством функций) . Его родной формат (.ass) поддерживается VLC Media Player, а также MPlayer, и его преобразование должно решить проблемы с кодировкой.
источник
Для перевода файлов SRT вы также можете использовать DualSub . Это с открытым исходным кодом (GPLv3) и кроссплатформенный. Он использует Google Переводчик.
источник
Для общей информации, теперь есть subtitle-index.org , он концентрирует множество субтитров, ранжирует их по нескольким критериям (длительность, проверка орфографии, доступность, кодирование) и предлагает лучший из них для прямой загрузки в формате UTF-8.
Работая довольно хорошо, это позволяет избежать проблем с кодированием, которые являются довольно общими и раздражающими.
источник
Это функция Python3 для преобразования любых текстовых файлов, включая субтитры, в файлы с кодировкой UTF-8.
источник