web-dev-qa-db-ja.com

字幕ファイルのエンコーディングを変更するにはどうすればよいですか?

映画のギリシャ語のサブタイトルをダウンロードしましたが、これはGeditで開いたときに表示されるものです。

enter image description here

字幕はVLCで最適に機能し、すべて完璧です。しかし、この字幕をギリシャ語の単語で編集したい場合はどうすればいいですか?文字エンコードに関するエラーがすぐに表示されます。

enter image description here

再試行すると、VLCが字幕を認識しません...

14
Leon Vitanos

字幕の編集/翻訳(テキストベースの字幕、つまり)については、 Gaupol を強くお勧めします。

Sudo apt-get install gaupol

gaupolのほかに、 字幕エディター および Gnome字幕 を試すこともできます。

ただし、スクリーンショットから、.srtファイルがUnicodeでnotエンコードされていることは明らかです。

判明したように、iconvはファイルのエンコードをUTF-8に変更しますが、変換されたファイルにはGeditで開いたときと同じ文字が残っています。

私が見つけた解決策はこれです:

  1. Gaupolを開き、メニューに移動FileOpenまたはボタンをクリックオープン
  2. 開いているウィンドウの下部にCharacter encodingというタイトルの選択メニューがあります。 その他...(最後のオプション)をクリックします。

    Character encoding option in Gaupol's open window

  3. ファイルに適したエンコードを選択します。 Greek ISO-8859-7、ボタンAcceptをクリックします。

    show character encoding dialog box

  4. .srtファイルを開き、すべての文字が正しくレンダリングされていることを確認してください。それ以外の場合は、上記の手順を別のエンコードで繰り返します。コマンドfile -bi yourfile.srtを実行して、ファイルの正しいエンコードを決定できます(ただし、結果は必ずしも正確ではありませんが)。

  5. 字幕ファイルを正しい文字エンコーディングで開いた状態で、メニューFileSave as ...に移動します、文字エンコードオプション(再び、ウィンドウの下部にあります)をUTF-8に変更し、ファイルを保存します(安全のために新しい名前を付けます)。

コードページを追加するこの同じ手順 Geditで機能します 。しかし、この質問は字幕ファイルに関するものであるため、Gaupolに指示を残します。

幸運を。

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

Kateエディターからそれらを開くと、適切なテキストが表示されます。Geditから開く必要がある場合、言い換えると、上記のターミナルコマンドを実行してコードを永続的に変更する必要があります。

4
billybadass

encaをお勧めします。 gaupolとは異なり、字幕ファイルだけでなく、任意のテキストファイルを処理できます。

  1. Encaをインストールします。

    Sudo apt-get install enca
    
  2. ファイルのエンコーディングを把握するには、encaが推測できるかどうかを確認します。

    enca <file>
    

    または、失敗し、テキストファイルの言語がわかっている場合は、たとえば

    enca -L ru <file>
    

    そしてそれがあなたに与えるものを見てください。 man encaからサポートされている言語のリストを取得します。

  3. UTF-8に変換することをお勧めします。実行すると実行できます

    enconv -x utf8 <file>
    

    または、encaが言語を推測できない場合

    enconv -L ru -x utf8 <file>
    

    これでうまくいくはずです。

3
Stan

問題は、Gedit(および他の多くのLinuxアプリ)がテキストのエンコードを正しく認識しないことです。一方、VLCはおそらく([字幕設定]タブを使用して)正しく認識されるように設定されているため、そこで問題が発生することはありません。解決策は簡単です。

ファイルをダブルクリックして開くのではなく、Geditの[開く]ダイアログを使用して開く。そこでは、左下にdrop-down for Encodingがあります。デフォルトでは[自動検出]が選択されています。 「Windows-1253」または「ISO-8859-7」に設定すると、ファイルを正しく開くことができます(その後、将来の問題を回避するためにUTF-8に保存できます)

1
Giorgos_tph

さまざまな形式への変換を可能にする(および多数の機能が付属する)別の字幕エディターは Aegisub です。ネイティブ形式(.ass)はVLC Media PlayerとMPlayerでサポートされており、それに変換するとエンコードの問題が修正されます。

0
LiveWireBT

SRTファイルの翻訳には、 DualSub も使用できます。これはオープンソース(GPLv3)であり、クロスプラットフォームです。 Google Translatorを使用します。

0
Boni García

これは、字幕を含むすべてのテキストファイルをUTF-8エンコーディングのテキストファイルに変換するためのPython3関数です。

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')
0

一般的な情報については、 subtitle-index.org があり、多数の字幕を集中し、複数の基準(期間、スペルチェック、リスビリティ、エンコード)に沿ってランク付けし、最高の字幕を提供します。 UTF-8として直接ダウンロード。

非常にうまく機能し、かなり一般的で迷惑なエンコードの問題を回避します。

0
Lulu