Outils pour utilisateurs

Outils du site


logiciel:utf8

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 :

  • -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épertoire

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

  • L'application Terminal fonctionne toujours en UTF-8 avec les ajustements suivants :
    1. dans les préférences de fenêtre, section Émulation, décocher « escape non-ASCII characters »
    2. dans Display, mettre « character set encoding » à UTF-8 mais c'est la valeur de défaut pour ceux qui ne l'ont pas changée.
  • L'application X11 utilise, comme sur Linux, la variable 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.

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:

  • s'il s'agit d'un de ses programmes qui, par exemples, contient des chaînes en ISO-Latin1 et compilé comme tel, il faut alors convertir tous les fichiers sources en UTF-8 en utilisant la commande recode décrite précédemment
  • si l'option de conversion/recompilation n'est pas possible, vous pouvez alors convertir les fichiers produits avec la commande recode; s'il y a des problèmes d'affichage, suivre plutôt la procédure de la section Affichage et saisie en ISO-Latin1

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>
logiciel/utf8.txt · Dernière modification : 2018-04-26 20:46 de 127.0.0.1