Comment puis-je changer l'encodage d'un fichier de sous-titres?
14
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.
Les sous-titres fonctionnent très bien sur VLC, tous parfaits. Mais que faire si je veux éditer ce sous-titre avec des mots grecs? Je reçois instantanément une erreur sur le codage des caractères.
J'ai appuyé sur réessayer, puis VLC ne reconnaît pas les sous-titres ...
Cependant, à partir des captures d'écran, il est clair que votre .srtfichier n'est pas codé en Unicode.
En fin de compte, iconvchange l'encodage du fichier en UTF-8, mais le fichier converti aura toujours les mêmes caractères que vous voyez lors de l'ouverture dans Gedit.
La solution que j'ai trouvée est la suivante:
Ouvrez Gaupol et allez dans le menu Fichier → Ouvrir ou cliquez sur le bouton Ouvrir .
Il y a 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 grec ISO-8859-7 , et cliquez sur le bouton Accepter .
Ouvrez maintenant votre .srtfichier et assurez-vous que tous les caractères sont correctement rendus. Sinon, répétez la procédure ci-dessus avec un autre encodage. Vous pouvez exécuter la commande file -bi yourfile.srtpour déterminer l'encodage correct de votre fichier (même si j'ai lu que les résultats ne sont pas nécessairement exacts).
Avec votre fichier de sous-titres ouvert dans l'encodage de caractères correct, allez maintenant dans le menu Fichier → Enregistrer sous ... et changez l'option d'encodage de caractères (encore une fois, en bas de la fenêtre) en UTF-8 et enregistrez le fichier (éventuellement avec un nouveau nom, par sécurité).
Cette même procédure d'ajout de la page de code fonctionnera pour Gedit . Pourtant, je laisse les instructions pour Gaupol car cette question concerne les fichiers de sous-titres.
J'ai déjà gaupol, et il montre les mots comme mes captures d'écran avant (en lettres illisibles). Et comme je l'ai déjà dit, si je définis UTF-8 comme le nouvel encodage, VLC ne reconnaît pas les sous-titres ..
Leon Vitanos
vous devrez changer l'encodage avant de pouvoir éditer et vous raser en utf-8
carnendil
Pourriez-vous être un peu plus précis? Yoy signifie changer l'encodage via enregistrer sous? U signifie changer le codage via le terminal avec "iconv"? Les deux ont essayé, VLC ne reconnaîtra pas le sous-titre après cela
Leon Vitanos
Je suis désolé, j'ai dû me procurer des sous-titres en grec pour vérifier. En effet, iconvle codage des caractères change, mais le programme ne remplacera pas les caractères qui sont affichés lors de l'ouverture en UTF-8. Veuillez vérifier ma réponse mise à jour. À votre santé.
Ouvrez-les à partir de l'éditeur Kate, vous pouvez voir le texte approprié, si vous devez toujours les ouvrir à partir de Gedit, en d'autres termes, changez définitivement la codification exécutez la commande de terminal ci-dessus.
iconv, pour ce que j'ai pu expérimenter, changera l'encodage du fichier, mais ne remplacera aucun des contenus, c'est-à-dire que seuls les caractères qui coïncident entre les encodages source et cible s'afficheront correctement, tous les autres s'afficheront selon comment l'encodage cible les comprend. Voir ma réponse et leurs commentaires.
carnendil
merci @carnendil ce que j'ai dit c'est que cela change la codification parce que je suis aussi grec (anglais pas langue maternelle), évidemment je voulais dire encodage et seulement dans le fichier de sortie l'entrée se trouve toujours dans le répertoire, mais pouvez-vous avoir la gentillesse de l'implémenter dans un script bash? dois-je choisir la boucle "for do. iconv ... done"?
billybadass
ce genre de réponse, notez qu'il faut encore changer l'encodage en utf-8 depuis les préférences du lecteur vidéo #! / bin / bash pour le fichier dans * .srt do iconv -f ISO-8859-7 -t UTF-8 -o "$ file.new" "$ file" && mv -f "$ file.new" "$ file" fait
billybadass
3
Je recommanderais enca. Contrairement à gaupol, vous pouvez gérer non seulement les fichiers de sous-titres, mais tout 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 ça vous donne. Obtenez la liste des langues prises en charge sur man enca.
Je recommanderais de convertir en UTF-8, vous pouvez le faire en exécutant
enconv -x utf8 <file>
ou, encore une fois, si encane peut pas deviner la langue par
Le problème est que Gedit (et de nombreuses autres applications Linux) ne reconnaissent pas correctement l'encodage du texte. VLC, d'autre part, est très probablement configuré pour le reconnaître correctement (via l'onglet "Préférences de sous-titre"), et c'est pourquoi vous n'y avez aucun problème. La solution est simple:
Vous n'ouvrez pas le fichier en double-cliquant dessus, mais via la boîte de dialogue "Ouvrir" de Gedit . Là, 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 sur UTF-8 pour éviter de futurs problèmes)
Un autre éditeur de sous-titres qui permet de convertir en différents formats (et est 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 résoudre les problèmes d'encodage.
Pour vos informations générales, maintenant il y a subtitle-index.org , il concentre beaucoup de sous-titres, les classe selon plusieurs critères (durée, vérification orthographique, lisibilité, encodage), et propose le meilleur en téléchargement direct en UTF-8.
Fonctionnant assez bien, il évite les problèmes d'encodage qui sont assez communs et ennuyeux.
Il s'agit d'une fonction Python3 pour convertir tous les fichiers texte, y compris les sous-titres, en fichiers avec codage 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')
iconv
le codage des caractères change, mais le programme ne remplacera pas les caractères qui sont affichés lors de l'ouverture en UTF-8. Veuillez vérifier ma réponse mise à jour. À votre santé.Ouvrez-les à partir de l'éditeur Kate, vous pouvez voir le texte approprié, si vous devez toujours les ouvrir à partir de Gedit, en d'autres termes, changez définitivement la codification exécutez la commande de terminal ci-dessus.
la source
iconv
, pour ce que j'ai pu expérimenter, changera l'encodage du fichier, mais ne remplacera aucun des contenus, c'est-à-dire que seuls les caractères qui coïncident entre les encodages source et cible s'afficheront correctement, tous les autres s'afficheront selon comment l'encodage cible les comprend. Voir ma réponse et leurs commentaires.Je recommanderais
enca
. Contrairement à gaupol, vous pouvez gérer non seulement les fichiers de sous-titres, mais tout fichier texte.Installez enca:
Pour comprendre l'encodage du fichier, voyez si enca peut le deviner:
ou, s'il échoue et que vous connaissez la langue du fichier texte, exécutez par exemple
et voyez ce que ça vous donne. Obtenez la liste des langues prises en charge sur
man enca
.Je recommanderais de convertir en UTF-8, vous pouvez le faire en exécutant
ou, encore une fois, si
enca
ne peut pas deviner la langue parCela devrait faire l'affaire.
la source
Le problème est que Gedit (et de nombreuses autres applications Linux) ne reconnaissent pas correctement l'encodage du texte. VLC, d'autre part, est très probablement configuré pour le reconnaître correctement (via l'onglet "Préférences de sous-titre"), et c'est pourquoi vous n'y avez aucun problème. La solution est simple:
Vous n'ouvrez pas le fichier en double-cliquant dessus, mais via la boîte de dialogue "Ouvrir" de Gedit . Là, 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 sur UTF-8 pour éviter de futurs problèmes)la source
Un autre éditeur de sous-titres qui permet de convertir en différents formats (et est 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 résoudre les problèmes d'encodage.
la source
Pour traduire des fichiers SRT, vous pouvez également utiliser DualSub . Il est open-source (GPLv3) et multiplateforme. Il utilise Google Translator.
la source
Pour vos informations générales, maintenant il y a subtitle-index.org , il concentre beaucoup de sous-titres, les classe selon plusieurs critères (durée, vérification orthographique, lisibilité, encodage), et propose le meilleur en téléchargement direct en UTF-8.
Fonctionnant assez bien, il évite les problèmes d'encodage qui sont assez communs et ennuyeux.
la source
Il s'agit d'une fonction Python3 pour convertir tous les fichiers texte, y compris les sous-titres, en fichiers avec codage UTF-8.
la source