Ubuntu – How to change the encoding of a subtitle file


I downloaded a Greek subtitle for a movie, and this is what I see when I open it with Gedit.

enter image description here

Subtitle works great on VLC, all perfect.
But what if I want to edit this subtitle with some Greek words? I instantly get an error about character encoding.

enter image description here

I hit retry and then VLC doesn't recognize the subtitles…

Best Answer

For subtitle edition/translation (text-based subtitles, that is), I strongly suggest Gaupol.

sudo apt-get install gaupol

Besides of gaupol, you can also try Subtitle Editor and Gnome Subtitles.

However, from the screenshots, it is clear that your .srt file is not encoded in Unicode.

As it turns out, iconv does change the encoding of the file to UTF-8, but the converted file will still have the same characters you see when opening in Gedit.

The solution I found is this:

  1. Open Gaupol and go to menu FileOpen or click on the button Open.
  2. There is a selection menu in the lower part of the open window, titled Character encoding. Click on Other... (last option).

    Character encoding option in Gaupol's open window

  3. Select an appropriate encoding for your file, e.g. Greek ISO-8859-7, and click on the button Accept.

    show character encoding dialog box

  4. Now open your .srt file and make sure all characters are correctly rendered. Otherwise, repeat the above procedure with another encoding. You can run the command file -bi yourfile.srt to determine the correct encoding of your file (although I've read the results are not necessarily exact).

  5. With your subtitle file open in the correct character encoding, now go to the menu FileSave as... and change the character encoding option (again, at the bottom of the window) to UTF-8 and save the file (possibly with a new name, for safety).

This same procedure of adding the codepage will work for Gedit. Yet I leave the instructions for Gaupol since this question is about subtitle files.

Good luck.

Related Question