iconv

iconv est un utilitaire permettant de modifier l'encodage des fichiers texte. iconv est utile lorsqu'on souhaite lire dans Linux des fichiers textes qui ont été produit avec un autre système d'exploitation. Par exemple un mac vieille génération (avant Mac os 10.5) ou Windows. L'encodage par défaut sous Linux est en général UTF-8. L'encodage par défaut dans les Mac vieille génération s'appelle applemac ou macintosh. Les encodages les plus courants sous Windows sont Latin1, MS-ANSI CP1252, ISO-8859-1 ou ISO-8859-15.

L'encodage est particulièrement important pour toutes les langues contenant des accents et des caractères spéciaux. En général, pour un texte en Anglais, il n'y a aucun problème d'encodage.

Pour vérifier qu'iconv est bien présent sur l'ordinateur, il suffit d'ouvrir un terminal et de taper:

which iconv
# retourne par exemple :
/usr/bin/iconv

Pour connaître l'encodage d'un fichier :

file -i nom_du_fichier 
nom_du_fichier: text/plain; charset=iso-8859-1

On peut aussi utiliser chardet, un utilitaire qui permet de détecter l'encodage lorsque `file -i` ne retourne rien.

Pour installer [chardet](http://chardet.github.io/) :

pip install chardet

Pour l'utiliser

chardet filename

Pour convertir :

# un fichier texte (ici NK.tex) d'un encodage mac vers un encodage UTF-8 :
iconv -f macintosh -t UTF-8 NK.tex -o NK2.tex
# et un fichier iso-8859-1 vers utf-8 :
iconv -f iso-8859-1 -t utf-8 fichier_en_iso-8859-1 -o fichier_en_utf-8

On crée ainsi des fichiers encodés en UTF-8 qui pourront être lu facilement sous Linux/Ubuntu.
L'option -c permet de supprimer les caractères qui ne sont pas convertibles, si vous avez des caractères d'un autre codage que celui du fichier source. Sans cette option, ces caractères font échouer la conversion !

On peut consulter la liste des encodages disponibles en utilisant l'option -l

iconv -l 

Pour en savoir plus, on peut consulter le manuel :

man iconv
  • iconv.txt
  • Dernière modification: Le 28/02/2025, 17:38
  • par bcag2