Je rencontre fréquemment des fichiers texte (tels que des fichiers de sous-titres dans ma langue maternelle, le persan ) avec des problèmes d'encodage de caractères. Ces fichiers sont créés sur Windows et enregistrés avec un encodage inapproprié (semble être ANSI), qui semble charabia et illisible, comme ceci:
Dans Windows, on peut résoudre cela facilement en utilisant Notepad ++ pour convertir l'encodage en UTF-8, comme ci-dessous:
Et le résultat lisible correct est comme ceci:
J'ai beaucoup cherché une solution similaire sur GNU / Linux, mais malheureusement les solutions suggérées (par exemple cette question ) ne fonctionnent pas. Surtout, j'ai vu des gens suggérer iconv
et recode
mais je n'ai pas eu de chance avec ces outils. J'ai testé de nombreuses commandes, y compris les suivantes, et toutes ont échoué:
$ recode ISO-8859-15..UTF8 file.txt
$ iconv -f ISO8859-15 -t UTF-8 file.txt > out.txt
$ iconv -f WINDOWS-1252 -t UTF-8 file.txt > out.txt
Rien de tout cela n'a fonctionné!
J'utilise Ubuntu-14.04 et je recherche une solution simple (GUI ou CLI) qui fonctionne exactement comme Notepad ++.
Un aspect important d'être "simple" est que l'utilisateur n'est pas tenu de déterminer le codage source; le codage source doit plutôt être automatiquement détecté par l'outil et seul le codage cible doit être fourni par l'utilisateur. Mais néanmoins, je serai également heureux de connaître une solution qui nécessite le codage source.
Si quelqu'un a besoin d'un cas de test pour examiner différentes solutions, l'exemple ci-dessus est accessible via ce lien .
iso-639
mais cela ne semble pas être disponible en iconv
ou recode
. Au moins, je ne le vois pas dans la sortie de iconv -l
.
vim
mais cela n'a pas fonctionné.
vim '+set fileencoding=utf-8' '+wq' file.txt
.