web-dev-qa-db-fra.com

Comment puis-je changer l'encodage d'un fichier de sous-titres?

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.

enter image description here

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.

enter image description here

Je clique sur Réessayer puis VLC ne reconnaît pas les sous-titres ...

13
Leon Vitanos

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:

  1. Ouvrez Gaupol et allez au menu Fichier Ouvrez ou cliquez sur le bouton Ouvrez .
  2. 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).

    Character encoding option in Gaupol's open window

  3. Sélectionnez un encodage approprié pour votre fichier, par exemple. Greek ISO-8859-7 , puis cliquez sur le bouton Accepter .

    show character encoding dialog box

  4. 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).

  5. Avec votre fichier de sous-titre ouvert dans le codage de caractères correct, allez maintenant au menu Fichier Enregistrer sous ... et modifiez l'option de codage de caractères (à nouveau, en bas de la fenêtre) en UTF-8 et enregistrez le fichier (éventuellement avec un nouveau nom, pour des raisons de sécurité).

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.

16
carnendil
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.

4
billybadass

Je recommanderais enca. Contrairement à gaupol, vous pouvez gérer non seulement les fichiers de sous-titres, mais également n’importe quel fichier texte.

  1. Installez enca:

    Sudo apt-get install enca
    
  2. 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.

  3. 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.

3
Stan

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)

1
Giorgos_tph

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.

0
LiveWireBT

Pour la traduction de fichiers SRT, vous pouvez également utiliser DualSub . Il est open-source (GPLv3) et multiplate-forme. Il utilise Google Translator.

0
Boni García

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')
0
Mojtaba Khodadadi

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.

0
Lulu