J'ai téléchargé un sous-titre grec pour un film, et c'est ce que je vois lorsque je l'ouvre avec Gedit.
Le sous-titre fonctionne très bien sur VLC, tout est parfait. Mais que se passe-t-il si je veux éditer ce sous-titre avec des mots grecs? Je reçois instantanément une erreur concernant le codage de caractères.
Je clique sur Réessayer puis VLC ne reconnaît pas les sous-titres ...
Pour l'édition/la traduction des sous-titres (c'est-à-dire les sous-titres textuels), je suggère fortement Gaupol .
Sudo apt-get install gaupol
En plus de gaupol
, vous pouvez également essayer Editeur de sous-titres et Sous-titres Gnome .
Cependant, à partir des captures d'écran, il est clair que votre fichier .srt
n'est pas codé en Unicode.
Il se trouve que iconv
change l'encodage du fichier en UTF-8, mais le fichier converti aura toujours les mêmes caractères que ceux que vous voyez lors de son ouverture dans Gedit.
La solution que j'ai trouvée est la suivante:
Il existe un menu de sélection dans la partie inférieure de la fenêtre ouverte, intitulé Encodage des caractères . Cliquez sur Autre ... (dernière option).
Sélectionnez un encodage approprié pour votre fichier, par exemple. Greek ISO-8859-7 , puis cliquez sur le bouton Accepter .
Ouvrez maintenant votre fichier .srt
et assurez-vous que tous les caractères sont correctement restitués. Sinon, répétez la procédure ci-dessus avec un autre encodage. Vous pouvez exécuter la commande file -bi yourfile.srt
pour déterminer le codage correct de votre fichier (même si j'ai lu les résultats ne sont pas nécessairement exacts).
Cette même procédure d’ajout de la page de codes fonctionnera pour Gedit . Pourtant, je laisse les instructions à Gaupol puisque cette question concerne les fichiers de sous-titres.
Bonne chance.
iconv -f ISO-8859-7 -t UTF-8 Input_file.srt > Output_file.srt
Ouvrez-les à partir de l'éditeur Kate, vous pouvez voir le texte approprié. Si vous avez toujours besoin de les ouvrir à partir de Gedit, autrement dit, modifiez définitivement la codification à l'aide de la commande de terminal ci-dessus.
Je recommanderais enca
. Contrairement à gaupol, vous pouvez gérer non seulement les fichiers de sous-titres, mais également n’importe quel fichier texte.
Installez enca:
Sudo apt-get install enca
Pour comprendre l'encodage du fichier, voyez si enca peut le deviner:
enca <file>
ou, s'il échoue et que vous connaissez la langue du fichier texte, exécutez par exemple
enca -L ru <file>
et voyez ce que cela vous donne. Obtenez la liste des langues prises en charge à partir de man enca
.
Je recommande de convertir en UTF-8, vous pouvez le faire en exécutant
enconv -x utf8 <file>
ou encore, si enca
ne peut pas deviner la langue en
enconv -L ru -x utf8 <file>
cela devrait faire l'affaire.
Le problème est que Gedit (et de nombreuses autres applications Linux) ne reconnaît pas correctement le codage du texte. VLC, d’autre part, est probablement configuré pour le reconnaître correctement (via l’onglet "Préférences de sous-titres"), et c’est pourquoi vous n’y rencontrez aucun problème. La solution est simple:
Vous n'ouvrez pas le fichier en double-cliquant dessus, mais par le dialogue "Ouvrir" de Gedit. Ici, vous pouvez trouver en bas à gauche un drop-down for Encoding
, dans lequel "Détecté automatiquement" est sélectionné par défaut. Réglez-le sur "Windows-1253" ou "ISO-8859-7" et vous êtes prêt à partir, le fichier s'ouvre correctement (et vous pouvez ensuite l'enregistrer au format UTF-8 pour éviter des problèmes futurs)
Un autre éditeur de sous-titres permettant de convertir en différents formats (et livré avec des tonnes de fonctionnalités) est Aegisub . Son format natif (.ass) est pris en charge par VLC Media Player ainsi que MPlayer et sa conversion devrait permettre de résoudre les problèmes de codage.
Pour la traduction de fichiers SRT, vous pouvez également utiliser DualSub . Il est open-source (GPLv3) et multiplate-forme. Il utilise Google Translator.
Il s’agit d’une fonction Python3 permettant de convertir tous les fichiers texte, y compris les sous-titres, en ceux encodés en UTF-8.
def correctSubtitleEncoding(filename, newFilename, encoding_from='ISO-8859-7', encoding_to='UTF-8'):
with open(filename, 'r', encoding=encoding_from) as fr:
with open(newFilename, 'w', encoding=encoding_to) as fw:
for line in fr:
fw.write(line[:-1]+'\r\n')
Pour vos informations générales, il y a maintenant subtitle-index.org , il concentre beaucoup de sous-titres, les classe selon plusieurs critères (durée, vérification orthographique, lisibilité, encodage) et offre le meilleur téléchargement direct au format UTF-8.
En travaillant assez bien, cela évite les problèmes d’encodage qui sont assez communs et ennuyeux.