Outils pour utilisateurs

Outils du site


logiciel:utf8

Ceci est une ancienne révision du document !


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 UTF0-8:

  1. se brancher sur la machine Linux frontal.iro.umontreal.ca ou sur son serveur si son compte est sur un serveur de recherche
  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:

  1. à partir de Windows lancer PuTTY ;
  2. à gauche de la fenêtre dans le menu, sélectionner Translation ;
  3. à droite, par défaut c'est ISO-8859-…., choisir dans le menu UTF-8 ;
  4. à gauche de la fenêtre dans le menu, sélectionner Session ;
  5. à droite, en bas de la fenêtre, se positionner sur Default Settings puis cliquer sur Save.

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

  • Premier cas : programmes localisés

Par exemple, les programmes écrits en Java et certains programmes en Perl. 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.

  • 2e cas: programmes non localisés

Par exemple, un programme utilisant des chaînes en ISO-Latin1 et compilé comme tel. Vous devrez convertir vos fichiers sources en UTF-8 et recompiler votre programme. Dans ce cas, vous pouvez alors recoder vos fichiers en utilisant la procédure de recodage en UTF-8

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 offre les pages en format Latin-1. Mais les nouvelles pages sont créées en format UTF-8. Pour les pages peu modifiées, le mieux est de les recoder pour utiliser les entités HTML :

“recode -d latin1..html fichier.html”

Sinon, on peut régler ce problème comme suit :

  1. ajouter un fichier .htaccess contenant la ligne
    AddCharset UTF-8 .html
  2. pour tous les fichiers .html dans le répertoire, faire :
    recode latin1..utf8 fichier.html
  3. faire attention car .htaccess est récursif : donc il faut traiter tous les fichiers dans les sous-répertoires
    find . -name “*.html” -exec recode latin1..utf8 {} \;
logiciel/utf8.1171059514.txt.gz · Dernière modification : 2018-04-26 20:46 (modification externe)