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 /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, on peut utiliser la ligne de commande suivante :
$ iconv -f macintosh -t UTF-8 NK.tex -o NK2.tex
On crée ainsi un fichier NK2.tex encodé en UTF-8 et qui pourra donc ê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 par exemple qui, sans cette option, vont bloquer 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