Depuis août 2005, le jeux de caractères (charset) utilisé sur toute machine Linux est UTF-8 (ISO 10646-1), permettant ainsi un affichage des caractères de la majorité des langues. Cette utilisation affecte l'affichage et la saisie des caractères sous Linux, de même que la représentation des noms de fichiers sur les serveurs Linux, même si ces fichiers sont édités à partir d'autres plateformes, comme Windows ou Macintosh.
Quelle que soit la plateforme sur laquelle l'usager travaille, s'il utilise des fichiers ou répertoires qui résident sur nos machines Linux (i.e. serveurs de fichiers du département ou de laboratoires), cet usager devra s'assurer que leurs noms soient en UTF-8 pour que ceux-ci s'affichent correctement. Si le nom d'un fichier ou répertoire est dans un encodage autre (notamment iso-latin-1 ou ISO-8859-1), voici la procédure à suivre pour le renommer en UTF-8:
arcade.iro.umontreal.ca
ou sur son serveur si son compte est sur un serveur de recherche, ou ouvrir une fenêtre de terminal vous travaillez déjà sur une machine Linux du département/usr/local/bin/renommer-utf8
Usage :
renommer-utf8 [-r] [-d] [-o] [nom-fichier]* [nom-répertoire]*
La commande traite tous les fichiers ou répertoires spécifiés en paramètres. Sans paramètre, elle traite tous les fichiers ou répertoires du répertoire courant (équivalent à -d .
; voir ci-après).
Options :
-r
: renommer récursivement tous les fichiers ou répertoire à partir du répertoire courant ou ceux spécifiés en paramètre-d
: renommer tous les fichiers ou répertoires mais uniquement ceux situés dans le répertoire courant ou ceux spécifiés en paramètre-o
: pour accepter automatiquement le nouveau nom de fichier ou répertoirePuisque que nos machines Linux utilisent UTF-8 pour l'affichage et la saisie, uniquement les usagers des autres plateformes, à savoir Macintosh et Windows, doivent configurer leurs logiciels d'émulation de terminal en conséquence.
Rappel aux usagers Linux: pour basculer du clavier anglais au français, consulter la procédure de configuration du clavier.
Si nécessaire, les usagers Windows doivent procéder à la configuration du logiciel PuTTY pour obtenir un affichage correct.
LC_CTYPE
pour déterminer comment afficher les caractères. Par défaut, elle affiche en ISO-Latin1. Vous devrez donc changer votre configuration pour travailler sur nos machines Linux avec X11 à partir d'un Mac. Connectez-vous sur votre serveur et dans un terminal, tapez les commandes suivantes: mkdir -p ~/.MacOSX defaults write ~/.MacOSX/environment LC_CTYPE fr_CA.UTF-8
Ceci va créer le fichier ~/.MacOSX/environment.plist
qui est l'équivalent primitif du .login
(ou .profile
) de UNIX. Il faut vous déconnecter et vous reconnecter pour qu'il soit lu.
Si vous êtes un utilisateur de Linux et que vous avez de vieux documents qui sont encodés en ISO-Latin1 (ou autre) sur nos machines Linux, le recodage en UTF-8 se fait avec la commande recode
. Voici un exemple d'usage typique pour des fichiers encodés en ISO-Latin1:
recode latin1..utf8 fichier
Pour plus d'information sur cette commande, consultez sa manpage (man recode
).
Beaucoup de programmes sont dit localisés, i.e. ils ajustent l'encodage de leur sortie (affichage, fichiers produits) en fonction des paramètres du système. C'est le cas, par exemple, des programmes écrits en Java et certains programmes en Perl. Dans ce cas, il n'y a théoriquement rien à faire, les routines de localisation s'adapteront aux paramètres du système et feront le travail en UTF-8.
Pour les programmes non localisés, la procédure à suivre dépend de la situation:
recode
décrite précédemmentrecode
; s'il y a des problèmes d'affichage, suivre plutôt la procédure de la section Affichage et saisie en ISO-Latin1
Bien que le logiciel pine
supporte l'encodage UTF-8, il ne supporte pas la conversion d'autres encodages vers UTF-8. Son usage n'est donc pas recommandé.
Si, pour une raison ou une autre, vous devez travailler en ISO-Latin1, vous pouvez ouvrir un terminal en ISO-Latin1 ainsi si votre shell est csh
ou tcsh
:
(setenv LC_CTYPE fr_CA ; xterm)
ou ainsi pour tout autre shell:
LC_CTYPE=fr_CA xterm
Bien entendu, vous pouvez remplacer xterm
par votre émulateur de terminal favori (konsole
dans KDE, par exemple).
Le serveur Web ne donne aucune indication aux fureteurs sur la nature de l'encodage d'une page. La plupart des fureteurs peuvent auto-détecter l'encodage d'une page, à condition que l'option d'auto-détection soit active. Il est donc préférable d'utiliser les entités HTML ou alors d'employer une méthode pour indiquer explicitement l'encodage de la page au fureteur. Les sections suivantes décrivent les différentes méthodes possibles.
L'usage des entités HTML est recommandé seulement pour les pages qui subissent peu de modification. Cependant, nous savons tous comment il peut être pénible de taper les caractères accentués ainsi. La solution est donc d'écrire la page avec les accents, et une fois terminée, vous pouvez la convertir pour utiliser les entités HTML ainsi:
recode -d utf8..html fichier.html
Dans le répertoire racine des vos pages Web, ajouter un fichier .htaccess
contenant la ligne suivante:
AddCharset UTF-8 .html
Il faut aussi s'assurer que tous les fichiers HTML sont encodés en UTF-8.
Attention: .htaccess
est récursif, i.e. il s'applique également à tous les sous-répertoires.
Une autre possibilité est de spécifier l'encodage pour chaque page individuelle avec une balise meta
située dans la section head
comme suit:
<html> <head> ... <meta http-equiv="content-type" content="text/html; charset=UTF-8"> ... </head> <body> ... </body> </html>