I downloaded a Greek subtitle for a movie, and this is what I see when I open it with Gedit.
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.
I hit retry and then VLC doesn't recognize the subtitles...
For subtitle edition/translation (text-based subtitles, that is), I strongly suggest 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:
There is a selection menu in the lower part of the open window, titled Character encoding. Click on Other... (last option).
Select an appropriate encoding for your file, e.g. Greek ISO-8859-7, and click on the button Accept.
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 commandfile -bi yourfile.srt
to determine the correct encoding of your file (although I've read the results are not necessarily exact).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.
Open them from Kate editor you can see the proper text, if you still need to open them from Gedit, in other words, permanently change the codification run the above terminal command.
I'd recommend
enca
. Unlike gaupol, you can handle not only subtitle-files, but any text file.Install enca:
To figure out the encoding of the file, see if enca can guess it:
or, if it fails and you know the language of the text file, than run for example
and see what it gives you. Get the list of supported languages from
man enca
.I'd recommend to convert to UTF-8, you can do it by running
or, again, if
enca
cannot guess the language bythat should do the trick.
The problem is that Gedit (and many other linux apps) don't recognize correctly the text's encoding. VLC on the other hand is most probably set to recognize it correctly (through "Subtitle preferences" tab), and that's why you don't have any problem there. The solution is simple:
You don't open the file by double-clicking it, but through Gedit's "Open" dialog. There, you can find at the bottom left side a
drop-down for Encoding
, in which "Automatically Detected" is selected by default. Set it to "Windows-1253" or "ISO-8859-7" and you're good to go, the file opens correctly (and you can then save it to UTF-8 to avoid future issues)Another subtitle editor that allows for converting into different formats (and comes with tons of features) is Aegisub. It's native format (.ass) is supported by VLC Media Player as well as MPlayer and converting to it should fix encoding issues.
For translating SRT files you also can use DualSub. It is open-source (GPLv3) and cross-platform. It uses Google Translator.
For your general informations, now there is subtitle-index.org, it concentrates a lot of subtitles, rank them along multiple criterias (duration, spell check, lisibility, encoding), and offers the best one in direct download as UTF-8.
Working pretty fine, it avoids encoding problems which are pretty commons and annoying.
This is a Python3 function for converting any text files including subtitles into the ones with UTF-8 encoding.
You only need Excel to correct this. It is quite simple, just follow these few steps:
Open a new Excel sheet Go to "Data", "Get external data", "From text", and select your subtitle file. You may need to search for "all files" instead of leaving it on ".txt" only.
Then, you can select the right encoding in the following window. Try most of them and preview the result. You will have to pay attention to 2 things:
Your text is perfectly encoded in Excel. You just have to copy/paste it all in a new .srt file.