I am having problems with subtitles in my language. They are encoded as Western(ISO-8859-15) and therefore some characters are not displayed correctly. I am tired of replacing manually using gedit and ctrl-h and then saving as UTF-8. How to automate this process?
You can use
If the file is named
chapter1.srt, then run:
iconv -f iso88591 -t utf8 chapter1.srt > outputfile.srt
and it will create the file, although it'll have a different name. If you move them out into another directory, then you can easily pipe them back in.
Another option is
konwert isolatin1-utf8 inputfile.srt > outputfile.srt
konwert can also be used as an encoding detector:
konwert any/en-test inputfile.srt
Which is great to get the input file encoding needed for the conversion, since both
iconv requires that as argument. You must however provide a language parameter:
any/en-test means English
It also has an option for in-place conversion, so you don't have to move and rename files afterwards:
konwert isolatin1-utf8 -O inputfile.srt
Also, since you're dealing with
.srt files, you should really check pysrt. It has many features to manipulate subtitles, like shifting and rescaling times.
sudo pip install pysrt
Converting to UTF-8 (it auto-detects input file encoding using either
srt -i --encoding 'utf-8' shift 0s mysubtitle.srt