Table des matières

Jeu de caractères UTF-8

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.

Encodage des noms de fichiers et répertoires

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:

  1. se brancher sur la machine Linux 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
  2. convertir les noms de fichiers ou répertoires dans le nouveau format en utilisant la commande qui permet de modifier les noms de fichiers au format UTF-8 :
    /usr/local/bin/renommer-utf8

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 :

Affichage et saisie de caractères

Puisque 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.

Windows

Si nécessaire, les usagers Windows doivent procéder à la configuration du logiciel PuTTY pour obtenir un affichage correct.

Macintosh

Contenu des fichiers et programmes

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).

Affichage des programmes

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:

pine

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é.

Affichage et saisie en ISO-Latin1

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).

Les sites Web

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.

Entités HTML

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

Usage de htaccess

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.

Usage d'une balise meta

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>