Un point sur l’encodage des caractères

Aaaaaahhh l’encodage des caractères ! C’est la tour de Babel de l’informatique. Je vais essayer de vous donner quelques bases pour vous en sortir.

Il y a trois utilitaires à connaitre quand on a des problèmes d’encodage des caractères : iconv (l’indispensable), uchardet (le méconnu mais très utile), recode (parfois utile).

iconv permet de convertir un fichier d’un encodage vers un autre. Le problème c’est qu’il n’est pas intelligent, il faut lui spécifier l’encodage des caractères du fichier en entrée… mais encore faut-il connaitre cet encodage. uchardet permet justement de détecter l’encodage d’un fichier. recode fait grosso-modo le même travail que iconv mais écrase le fichier d’entrée, il faut donc faire très attention. Il peut être utile dans le cas où vous avez de nombreux fichiers à convertir par exemple.

apt-get install libtext-iconv-perl # Installation de iconv
apt-get install uchardet # Installation de uchardet
apt-get install recode # Installation de recode

Quelques exemples avec iconv.

iconv --from-code windows-1252 --to-code UTF-8 encodagequejaimepas.txt --output encodagequejaime.txt # Version longue
iconv -f ISO-8859-1 -t UTF-8 /var/www/encodagequejaimepas.html -o /var/www/encodagequejaime.html # Version courte, -f est équivalent à --from-code, -t est équivalent à --to-code, --output est équivalent à -o
iconv --list ou iconv -l # Afficher la liste des jeux de caractères reconnus par iconv

Quelques remarques : 1/ Si -t n’est pas spécifié, l’encodage (en sortie) choisi est celui de la locale du système 2/ Pour connaitre la locale du système : locale 3/ L’encodage Windows-1252 ou CP1252 c’est la même chose (voir ici pour l’explication).

uchardet s’utilise ainsi uchardet encodagequejaimepas.txt et indique l’encodage du fichier (par exemple Windows-1252). A noter que le mainteneur est Jehan développeur sur ZeMarmot, qu’on peut récupérer une version plus récente de ucharted sur le repository GitHub et qu’il y a une page Bountysource (Cet intermède publicitaire vous est offert par Cascador).

Dans le prochain article on ira plus loin en rentrant dans un problème concret.

A lire (notamment les commentaires) : linuxfr.org

Vus : 409
Publié par blog-libre : 133