J'ai des problèmes avec les sous-titres dans ma langue. Ils sont codés comme Western (ISO-8859-15) et, par conséquent, certains caractères ne sont pas affichés correctement. Je suis fatigué de remplacer manuellement en utilisant gedit et ctrl-h puis en enregistrant en UTF-8. Comment automatiser ce processus?
Vous pouvez utiliser iconv
:
Si le fichier s'appelle chapter1.srt
, exécutez:
iconv -f iso88591 -t utf8 chapter1.srt > outputfile.srt
et il créera le fichier, même s’il aura un nom différent. Si vous les déplacez dans un autre répertoire, vous pouvez facilement les réacheminer.
Une autre option est
konwert isolatin1-utf8 inputfile.srt > outputfile.srt
En plus de la conversion, konwert
peut également être utilisé comme détecteur de codage :
konwert any/en-test inputfile.srt
Ce qui est bien pour obtenir l’encodage du fichier d’entrée nécessaire à la conversion, étant donné que konwert
et iconv
le requièrent en tant qu’argument. Vous devez cependant fournir un paramètre de langue: en
dans any/en-test
signifie anglais
Il dispose également d'une option de conversion sur place, vous évitant ainsi de déplacer et de renommer les fichiers par la suite:
konwert isolatin1-utf8 -O inputfile.srt
De plus, puisque vous traitez avec des fichiers .srt
, vous devriez vérifier pysrt . Il possède de nombreuses fonctionnalités pour manipuler les sous-titres, comme le décalage et le redimensionnement des temps.
Installation:
Sudo pip install pysrt
Conversion au format UTF-8 (il détecte automatiquement le codage du fichier d'entrée à l'aide de chardet
ou charade
)
srt -i --encoding 'utf-8' shift 0s mysubtitle.srt