Les HOWTO Linux...
Page suivante - Page précédente - Table des matières
4. Applications spécifiques.
4.1 Le réseau
rlogin
Marche bien avec les patches mentionnés précédemment.
telnet
Telnet n'est pas ne traite pas les caractères 8-bits (il n'est pas"8-bit-clean") par défaut. Pour pouvoir envoyer des codes de touches Unicode à un hôte distant, vous devez mettre telnet en mode "outbinary". Il y a deux façons de faire cela :
$ telnet -L <hote>
et
$telnet
telnet> set outbinary
telnet> open <hote>
en outre, utilisez les patches mentionnés précédemment.
4.2 Les navigateurs
Netscape
Netscape 4.05 ou plus peut afficher des documents HTML en encodage UTF-8. Tout ce qu'un document nécessite est la ligne suivante, située entre les tags <head> et </head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Netscape 4.05 ou plus peut aussi afficher du HTML et du texte en
encodage UCS-2 avec le [byte-order mark].
http://www.netscape.com/computing/download/Lynx
Lynx 2.8 a un écran d'options (touche 'O') qui permet de sélectionner la table de caractères utilisée à l'affichage. Quand il, tourne dans un xterm ou depuis une "Linux console" en mode UTF-8, sélectionnez "UNICODE UTF-8".
Maintenant, encore une fois, tout ce qu'un document nécessite est la ligne suivante, entre les tags <head> et </head> :
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Quand vous visualisez des fichiers texte encodés en UTF-8, vous devez aussi passer à la ligne de commande l'option "-assume_local_charset=UTF-8" (affecte seulement les URLs de type file:/...) ou "-assume_charset=UTF-8" (affecte toute les URLs). Sinon, dans Lynx-2.2.8, vous pouvez, dans l'écran d'options, changer le jeu de caractères supposé par défaut ("assumed document character set") en "utf-8".
Il y a aussi, dans l'écran d'options, une option permettant de choisir le jeu de caractères par défaut ("preferred document character set"), mais cela n'a pas d'effet, au moins avec les URLs file:/... et http://... servies par apache-1.3.0.
Cependant, il y a un problème concernant les espaces et les fins de lignes : regardez à la section russe de x-utf-8.php, ou utf-8-demo.txt.
Notez aussi que dans Lynx-2.8.2, configuré avec l'option -enable-prettysrc, les jolies combinaisons de couleurs ne marchent plus correctement quand le jeu de caractères pour l'affichage à été positionné à "UNICODE-UTF-8". Ce problème est résolu par le patch lynx282.diff.
D'après les développeurs de lynx : "Pour une utilisation sérieuse de
l'affichage UTF-8 avec Lynx, il est toujours recommandé de compiler avec la
bibliothèque slang et -DSLANG_MBCS_HACK."
ftp://ftp.gnu.org/pub/gnu/lynx/lynx-2.8.2.tar.gz
http://lynx.browser.org/
http://www.slcc.edu/lynx/
ftp://lynx.isc.org/
Pages de test
Des pages de test pour les navigateurs peuvent être trouvées sur les
pages d'Alan Wood et James Kass :
http://www.hclrss.demon.co.uk/unicode/#links,
http://home.att.net/~jameskass/
4.3 Les éditeurs
yudit
Le programme yudit
de Gáspár Sinai
http://czyborra.com/yudit/
est un éditeur de texte unicode de premier ordre pour le système X
Window.
Il supporte le traitement simultané de beaucoup de langages, méthodes
d'entrée, conversions de caractères locaux standards.
Il est équipé pour supporter l'entrée de texte dans tous les langages
avec seulement un clavier anglais, en utilisant des tables de
configuration du clavier.
Il peut être compilé en 3 versions : interface graphique Xlib , KDE, ou Motif.
Il peut être personnalisé très facilement. Typiquement, vous voudrez modifier votre fonte. Depuis le menu font je choisis "Unicode". Puis, puisque la commande "xlsfonts '*_*-iso10646-1" donnait toujours un affichage ambigu, je choisis un taille de fonte de 13 (pour correspondre à la fonte fixe de 13 pixels de Markhus Kuhn).
Ensuite, vous personnaliserez votre méthode d'entrée. Les méthodes "Straight", "Unicode" et "SGML" sont les plus intéressantes. Pour avoir des détails sur les autres méthodes d'entrées incorporées, regardez dans "/usr/local/share/yudit/data/".
Pour qu'un changement devienne un réglage par défaut pour les prochaines sessions, éditez votre fichier $HOME/.yuditrc.
Les fonctionnalités générales de l'éditeur sont limitées à l'édition, le copier-coller, et le "chercher-remplacer" (search&replace). Pas de fonction d'annulation (undo).
mined98
mined98
est un petit éditeur de texte de Michiel Huisjes, Achim Müller
et Thomas Wolff :
http://www.inf.fu-berlin.de/~wolff/mined.html.
Il vous permet d'éditer des fichier encodés en UTF-8 ou 8 bits, dans un
xterm UTF-8 ou 8-bits.
Il dispose aussi de puissantes fonctionnalités pour entrer les
caractères Unicode.
Quand mined est lancé dans un xterm ou une console Linux en mode
UTF-8, vous devriez positionner la variable d'environnement
utf8_term
, ou appeler mined avec l'option -U
.
mined vous permet d'éditer des fichiers encodés aussi bien en UTF-8
qu'en 8-bits. Par défaut il utilise un heuristique d'auto-détection.
Si vous ne voulez pas vous reposer sur des heuristiques, passez
l'option -u
à la ligne de commande lorsque vous éditez un fichier
UTF-8, ou +u
lorsque vous éditez un fichier encodé en 8 bits.
Vous pouvez changer l'interprétation à n'importe quel moment depuis
l'éditeur : il affiche l'encodage ("L:h" pour du 8-bits, "U:h" pour de
l'UTF-8) dans la ligne de menu. Vous pouvez cliquer sur le premier de
ces caractères pour le changer.
Quelques bémols :
- Le binaire Linux dans la distribution est dépassé et ne supporte pas
UTF-8. Vous devrez recompiler un binaire à partir des
sources. Installez ensuite src/mined dans /usr/local/bin/mined et
doc/mined.help dans /usr/local/man/cat1/mined.1, de façon à ce que
ESC h
le trouve. - mined ignore votre réglage "stty erase". Quand votre touche backspace
renvoie un code ASCII 127, et que vous avez positionné "stty erase
^?" - ce qui est finalement le réglage le plus sûr - vous devez
appeler mined avec l'option
-B
de façon à ce que la touche backspace efface le caractère à gauche du curseur. - Les touches "Home", "End", "Delete" ne marchent pas.
vim
vim
(depuis la version 5.4m) supporte les locales multi-octets, mais
seulement si la bibliothèque X a le même support, et seulement pour
les encodages avec au moins deux octets par caractères, i.e les encodages
ISO-2022. Il ne supporte pas l'UTF-8.
emacs
Avant tout, vous devriez lire la section "International Character Set Support" (noeud "International") dans le manuel d'Emacs. En particulier, notez que vous devez démarrer Emacs avec la commande
$ emacs -fn fontset-standard
pour qu'il utilise un jeu de fontes comprenant beaucoup de caractères
internationaux.À court terme, le package emacs-utf http://www.cs.ust.hk/faculty/otfried/Mule/ d'Otfried Cheong procure un "unicode-utf-8" pour Emacs. Après avoir compilé le programme "utf2mule" et l'avoir installé quelque part dans votre $PATH, installez aussi unicode.el, muleuni-1.el, unicode_char.el quelque part, et ajoutez les lignes
(setq load-path (cons "/home/user/somewhere/emacs" load-path))
(if (not (string-match "XEmacs" emacs-version))
(progn
(require 'unicode)
(if (eq window-system 'x)
(progn
(create-fontset-from-fontset-spec
"-misc-fixed-medium-r-normal-*-12-*-*-*-*-*-fontset-standard")
(create-fontset-from-fontset-spec
"-misc-fixed-medium-r-normal-*-13-*-*-*-*-*-fontset-standard")
(create-fontset-from-fontset-spec
"-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-fontset-standard")
(create-fontset-from-fontset-spec
"-misc-fixed-medium-r-normal-*-15-*-*-*-*-*-fontset-standard")
(create-fontset-from-fontset-spec
"-misc-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard")
(create-fontset-from-fontset-spec
"-misc-fixed-medium-r-normal-*-18-*-*-*-*-*-fontset-standard")))))
à votre $HOME/.emacs. Pour activer un des jeux de fontes, utilisez l'item "Set Font/FonSet" du menu mule, ou Shift-down-mouse-1. Pour l'instant les jeux de fontes avec des hauteurs de 15 et 13 ont le meilleur support Unicode, grâce aux fontes 9x15 et 6x13 de Markus Kuhn. Pour ouvrir un fichier encodé en UTF-8, vous pouvez taper
M-x universal-coding-system-argument unicode-utf8 RET
M-x find-file filename RET
ou
C-x RET c unicode-utf8 RET
C-x C-f filename RET
Notez que cela marche avec Emacs seulement en mode fenêtre, pas en mode terminal.
Richard Stallman prévoit à long terme d'ajouter un support d'UTF-8 intégré à Emacs.
Xemacs
(Cette section est écrite par Gilbert Baumann.)
Voici comment apprendre à XEmacs (20.4 configuré avec MULE) l'encodage UTF-8. Malheureusement vous aurez besoin des sources pour pouvoir le patcher.
D'abord vous aurez besoin de ces fichiers fournis par Tomohiko Morioka :
http://turnbull.sk.tsukuba.ac.jp/Tools/XEmacs/xemacs-21.0-b55-emc-b55-ucs.diff
http://turnbull.sk.tsukuba.ac.jp/Tools/XEmacs/xemacs-ucs-conv-0.1.tar.gz
Le .diff est un diff pour les sources C. Le tarball contient du code elisp, qui fournit beaucoup de tables de code qui permettent la conversion depuis et vers Unicode. Comme le nom du diff le suggère, il est prévu pour XEmacs-21. J'ai eu besoin d'aider un peu 'patch'. La différence la plus notable avec mes sources XEmacs-20.4 est que file-coding.[ch] était appelé mule-coding.[ch]
Pour ceux qui connaissent peu XEmacs-MULE (comme moi) voici un guide rapide :
Ce que nous appelons un encodage est appelé par MULE "coding system". Les commandes les plus importantes sont :
M-x set-file-coding-system
M-x set-buffer-process-coding-system [comint buffer]
et la variable 'file-coding-system-alist', qui guide 'find-file' pour qu'il trouve l'encodage utilisé. Une fois que tout marchait, la première chose que j'ai faite fut ceci.
Ce code cherche une ligne de mode spéciale commençant par _*_ quelque part dans les 600 premiers octets du fichier qui va être ouvert. Si cette ligne contient un champ "Encoding: xyz;" et que l'encodage xyz ("coding system" dans le langage d'Emacs) existe, il le sélectionne. Donc maintenant vous pouvez utiliser :
;;; _*_ Mode: Lisp; Syntax: Common-Lisp; Package: CLEX; Encoding:
utf-8; _*_
et Emacs entrera en mode utf-8 à partir de là.
Une fois que tout marchait, j'ai défini une macro pour \u03BB (lambda grec) comme ceci :
(defmacro \u03BB (x) '(lambda .,x))
nedit
xedit
En théorie, xedit
devrait être capable d'éditer des fichiers UTF-8 si
vos locales sont configurées en conséquence (voir au dessus), et que
vous ajoutez la ligne "Xedit*international: true" à votre fichier
$HOME/.Xdefaults.
En pratique, il reconnaîtra les encodages UTF-8 des caractères non
ASCII, mais il les affichera comme des séquences de caractères "@".
axe
En théorie, axe
devrait être capable d'éditer des fichiers UTF-8 si
vos locales sont configurées en conséquence (voir au dessus), et que
vous ajoutez la ligne "Axe*International: true" à votre fichier
$HOME/.Xdefaults.
En pratique, il vous laissera simplement un joli fichier core.
pico
TeX
Les distributions de teTex 0.9 (et supérieures) contiennent une adaptation Unicode de TeX, appelée Omega ( http://www.gutenberg.eu.org/omega/ftp://ftp.ens.fr/pub/tex/yannis/omega), mais est-ce que quelqu'un connaîtrait un tutorial sur ce système ?
Autres liens peut-être en rapport :
http://www.dante.de/projekte/nts/NTS-FAQ.html,
ftp://ftp.dante.de/pub/tex/language/chinese/CJK/
4.4 Les logiciels de courrier électronique
MIME : RFC 2279 définit les jeux de caractères UTF-8 et MIME, qui peuvent être convertis en encodage 8-bits, quoted-printable ou base64. L'ancienne norme MIME UTF-7 (RFC 2152) est considérée comme étant obsolète ("deprecated") et ne devrait plus être utilisée.
Les clients mail sortis après le 1er janvier 1999 devraient être capables d'envoyer et d'afficher des courriers encodés en UTF-8, sous peine d'être considérés comme incomplets. Mais ces courriers doivent contenir les étiquettes (labels) MIME :
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8-bit
Envoyer simplement un fichier UTF-8 vers "mail" via un pipe sans faire attention aux labels MIME ne fonctionnera pas. Les gens qui implémentent des clients de courrier devraient jeter un oeil à http://www.imc.org/imc-intl/ et http://www.imc.org/mail-i18n.html
Parlons maintenant des clients mail individuels (ou "mail user agents") :
pine
La situation pour une version non patchée de pine 4.10 est la suivante.
Pine ne fait pas de conversion de jeu de caractères. Mais il vous permet de voir des courriers UTF-8 dans une fenêtre texte UTF-8 (console Linux ou xterm).
Normalement, Pine se plaindra du fait qu'il y a différents jeux de caractères à chaque fois que vous visualiserez un courrier encodé en UTF-8. Pour vous débarrasser de cet avertissement, choisissez S (setup), puis C (config), et changez la valeur de "character set" à UTF-8. Cette option ne fera rien à part réduire le nombre d'avertissements, puisque Pine ne connaît pas UTF-8 en interne.
Notez aussi que pour Pine la notion de caractères Unicode est très limitée : il affichera les caractères latins et grecs, mais ce sont les seuls types de caractères Unicode qu'il connaît.
Un patch de Robert Brady http://www.ents.susu.soton.ac.uk/~robert/pine-utf8-0.1.diff ajoute à Pine un support UTF-8. Avec ce patch, il peut décoder et afficher les entêtes et le corps des messages correctement. Ce patch nécessite GNOME libunicode http://cvs.gnome.org/lxr/source/libunicode/.
Kmail
Kmail (comme tout KDE 1.0) ne contient absolument aucun support pour les mails en UTF-8.
Netscape Communicator
Le Messenger de Netscape Communicator peut envoyer et afficher des mails encodés en UTF-8, mais cela nécessite quelques interventions manuelles de l'utilisateur.
Pour envoyer un mail encodé en UTF-8 : après avoir ouvert la fenêtre "Compose", mais avant de commencer à composer le message, sélectionnez dans le menu "View -> Character Set ->Unicode (UTF-8)" puis composez votre message et envoyez le.
Quand vous recevez un courrier encodé en UTF-8, Netscape ne l'affiche malheureusement pas en UTF-8 directement, et ne donne même pas un indice visuel montrant que le courrier a été encodé en UTF-8. Vous devez sélectionner manuellement l'option adéquate dans "View -> Character Set -> Unicode (UTF-8)". Pour afficher les courriers UTF-8, Netscape utilise des fontes différenciées. Vous pouvez ajuster la fonte utilisée dans la boîte de dialogue "Edit -> Preferences -> Fonts". Choisissez la catégorie de fontes "Unicode".
Emacs (rmail, vm)
4.5 Autres applications en mode texte
less
Teléchargez ftp://ftp.gnu.org/pub/gnu/less/less-340.tar.gz et appliquez le patch less-340-utf-2.diff de Robert Brady <rwb197@ecs.soton.ac.uk>. Puis positionnez la variable d'environnement LESSCHARSET :
export LESSCHARSET=utf-8
Si vous avez positionné une variable d'environnement LESSKEY, vérifiez
aussi que le fichier vers lequel elle pointe ne définit pas
LESSCHARSET.
Si nécessaire, régénérez ce fichier en utilisant la commande
'lesskeys', ou enlevez la variable d'environnement LESSKEYS.expand, wc
Procurez vous GNU textutils-2.0 et appliquez le patch
textutils-2.0.diff,
puis lancez configure.
Ajoutez "#define HAVE_MBRTOWC 1", "#define HAVE_FPUTWC 1" à config.h.
Dans src/Makefile, modifiez CFLAGS et LDFLAGS pour qu'ils incluent les
répertoires où libutf8 est installé, puis recompilez.
col, colcrt, colrm, column, rev, ul
Procurez vous le package util-linux-2.9y, configurez le, puis définissez ENABLE_WIDECHAR dans defines.h , changez le "# if 0" en "# if 1" dans lib/widechar.h. dans text-utils/Makefile, modifiez CFLAGS et LDFLAGS pour qu'ils incluent les répertoires où libutf8 est installé. Puis recompilez.
figlet
Figlet 2.2 a une option pour gérer l'entrée en UTF-8 : "figlet -C utf-8".
kermit
Le programme de communication série C-Kermit http://www.columbia.edu/kermit/, dans les versions 7.0beta10 et supérieures, comprend les encodages de fichier et de transfert UTF-8 et UCS-2, et l'encodage de terminal UTF-8. La documentation de ces caractéristiques peut être trouvée à ftp://kermit.columbia.edu/kermit/test/text/ckermit2.txt
4.6 Autres applications X11
La Xlib de X11 ne peut malheureusement pas encore localiser UTF-8, cela devrait être travaillé prochainement.
Page suivante - Page précédente - Table des matières