Intereting Posts
Будет ли возможность в Unity изменить файловый менеджер по умолчанию? Была ли поддержка OMAP3 снижена на 12,04? Как сохранить настройки дисплея? Установка wxPython в Ubuntu 12.10 Могу ли я свернуть окна приложений на панели задач в GNOME? Настройка сервера Ubuntu для загрузки минимального рабочего стола только при необходимости. Настройка php на сервере Ubuntu Как удалить значок приложения с верхней панели? Выполнить команду из файла в текущей оболочке Проверка орфографии в Firefox постоянно меняет словарь на es_CU даже после того, как я перешел на en_US примерно: config Список беспроводных адаптеров, работающих с Linux: кто ведет список? Настройте команду «mail» для отправки внешней электронной почты при использовании имени домена сервера Длительное время загрузки после двойной загрузки (теперь удалено) с Debian Свежая установка 12.04 на выпуск Чёрные USB-мыши на одном из USB-портов

Как изменить кодировку файла субтитров?

Я загрузил греческий субтитр для фильма, и это то, что я вижу, когда открываю его с помощью Gedit.

введите описание изображения здесь

Subtitle отлично работает на VLC, все идеально. Но что, если я хочу отредактировать этот субтитр с некоторыми греческими словами? Я сразу получаю сообщение об кодировке символов.

введите описание изображения здесь

Я ударил попытку, а затем VLC не распознает субтитры …

Для субтитров / перевода (текстовые субтитры, то есть), я настоятельно рекомендую Gaupol .

sudo apt-get install gaupol 

Помимо gaupol , вы также можете попробовать субтитры и субтитры Gnome .

Однако со скриншотов ясно, что ваш .srt файл не закодирован в Unicode.

Как оказалось, iconv меняет кодировку файла на UTF-8, но преобразованный файл будет по-прежнему иметь те же символы, которые вы видите при открытии в Gedit.

Решение, которое я нашел, следующее:

  1. Откройте Gaupol и перейдите в меню FileOpen или нажмите кнопку Open .
  2. В нижней части открытого окна имеется меню выбора под названием « Кодировка символов» . Нажмите « Другое …» (последний вариант).

    Опция кодировки символов в открывшемся окне Gaupol

  3. Выберите подходящую кодировку для вашего файла, например, греческий ISO-8859-7 , и нажмите кнопку « Принять» .

    показать диалоговое окно кодировки символов

  4. Теперь откройте ваш .srt файл и убедитесь, что все символы правильно отображены. В противном случае повторите описанную выше процедуру с другой кодировкой. Вы можете запустить командный file -bi yourfile.srt чтобы определить правильную кодировку вашего файла (хотя я читал результаты не обязательно точно).

  5. Когда ваш файл субтитров откроется в правильной кодировке символов, перейдите в меню FileSave as … и измените параметр кодировки символов (опять же, в нижней части окна) на UTF-8 и сохраните файл (возможно, с помощью новое название, для безопасности).

Эта же процедура добавления кодовой страницы будет работать для Gedit . Однако я оставляю инструкции для Гауполя, поскольку этот вопрос касается файлов субтитров.

Удачи.

 iconv -f ISO-8859-7 -t UTF-8 Input_file.srt > Output_file.srt 

Откройте их из редактора Kate, вы можете увидеть правильный текст, если вам все же нужно открыть их из Gedit, другими словами, навсегда изменить кодировку, выполнить приведенную выше команду терминала.

Я бы рекомендовал enca . В отличие от gaupol, вы можете обрабатывать не только файлы субтитров, но и любой текстовый файл.

  1. Установить enca:

     sudo apt-get install enca 
  2. Чтобы выяснить кодировку файла, посмотрите, может ли его угадать:

     enca <file> 

    или, если он терпит неудачу, и вы знаете язык текстового файла, чем запуск, например

     enca -L ru <file> 

    и посмотреть, что это дает вам. Получить список поддерживаемых языков из man enca .

  3. Я бы рекомендовал конвертировать в UTF-8, вы можете сделать это, запустив

     enconv -x utf8 <file> 

    или, опять же, если enca не может угадать язык

     enconv -L ru -x utf8 <file> 

    Это должно делать свое дело.

Проблема в том, что Gedit (и многие другие Linux-приложения) неправильно распознают кодировку текста. С другой стороны, VLC, скорее всего, настроен на правильное распознавание (через вкладку «Настройки субтитров»), поэтому у вас нет проблем. Решение прост:

Вы не открываете файл, дважды щелкнув его, а через диалоговое окно «Открыть» Gedit . Там внизу вы можете найти drop-down for Encoding список drop-down for Encoding , в котором по умолчанию выбрано «Автоматически обнаружено». Установите его в «Windows-1253» или «ISO-8859-7», и вам хорошо идти, файл открывается правильно (и вы можете сохранить его в UTF-8, чтобы избежать будущих проблем)

Другой редактор субтитров, который позволяет конвертировать в разные форматы (и поставляется с множеством функций), – это Aegisub . Это родной формат (.ass) поддерживается VLC Media Player, а также MPlayer, и конвертирование в него должно исправить проблемы с кодировкой.

Для перевода SRT-файлов вы также можете использовать DualSub . Это open-source (GPLv3) и кросс-платформенный. Он использует Google Translator.

Для вашей общей информации теперь есть 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')