web-dev-qa-db-fra.com

Convertir un document (txt | srt) de Western (ISO-8859-15) en UTF-8

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?

2
Primož Kralj

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.

5
hexafraction

Une autre option est

konwertInstall konwert

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
2
MestreLion

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
2
MestreLion