UTF-8 et Linux
Un article de Haypo.
Retour à l'accueil des codages
Utiliser l'encodage UTF-8 sous Linux n'est pas tous les jours une tasse de thé. Pour rappel, l'encodage UTF-8 encode les caractères Unicode sur une longueur de 1 à 4 octets. Le problème est que tous les programmes ne sont pas encore compatible. On va commencer par citer les programmes supportant bien l'UTF-8 :
- xterm et bash : Si la locale est bien configurée, aucun problème
- vi (ou plutôt vim je pense) : Supporte l'UTF-8 à merveille. Les commandes "set fileencoding=utf-8" et "set fileencoding=latin-1" permettent de jongler entre les deux encodages.
- Xchat (et toutes les applications GTK+ bien écrites : Utilisez les commandes "/charset utf-8" et "/charset iso-8859-1" pour passer de l'un à l'autre.
Sommaire |
[modifier] Comment savoir si on utilise déjà l'UTF-8 ?
Dans un terminal, tapez la commande suivate :
echo -n é | wc -c
En iso-8859-1, la lettre é prend 1 octet, en UTF-8 : deux octets.
Sinon, tapez "locale". Les locales avec UTF-8 sont notées « (...).UTF-8(...) », comme « fr_FR.UTF-8 » ou « fr_FR.UTF-8@euro ».
[modifier] Bien configurer ses locales
Les locales sont, en gros, la langue et l'encodage utilisé par défaut par toutes les applications. C'est grâce à ça que Gnome répond "Impossible d'afficher l'emplacement « file://gimpx »" (et non pas un truc en anglais) quand on essaye de lancer un programme qui n'existe pas à l'aide de ALT+F2.
Les locales se configurent à deux endroits :
- Sous Debian, avec « dpkg-reconfigure locales » (il vous faudra peut-être installer locales)
- Dans le gestionnaire de connexion graphique (xdm, gdm, ...)
[modifier] ssh sur un linux non-utf-8
Voir l'article sur ssh (partie sur le problème d'encodage).
[modifier] Détecter l'encodage d'un fichier
- file -i <fichier texte> donne l'encodage d'un fichier texte (charset=...) à partir de sa version 4.0
- utrac -p <fichier> donne l'encodage d'un fichier texte (plus robuste et fonctionne sur plus de formats que file)
utrac utilise un bon algorithme de détection des encodages.
[modifier] Convertir un fichier vers l'UTF-8 et inversement
Utilisez le programme iconv en ligne de commande :
iconv -f iso-8859-1 -t utf-8 <in >out # vers UTF-8 iconv -f utf-8 -t iso-8859-1 <in >out # vers latin-1


