12. Comment faire pour que d'autres programmes acceptent les caractères non-ASCII

Contenu de cette section

C'était jadis un véritable calvaire. Il fallait convaincre individuellement chaque programme de travailler en 8 bits. Les choses ne sont pas encore idéales, mais récemment de nombreux utilitaires GNU ont appris à reconnaître les variables LC_CTYPE=iso_8859_1 ou LC_CTYPE=iso-8859-1. Essayez d'abord ça, et si ça ne suffit pas essayez les trucs ci-dessous.

Tout d'abord, le huitième bit doit survivre au processus d'entrée du noyau, assurez-vous-en donc avec stty cs8 -istrip -parenb.

A. Pour emacs, mettez les lignes

        (standard-display-european t)
        (set-input-mode nil nil 1)
        (require 'iso-syntax)
et peut-être aussi
        (load-library "iso-insert.el")
        (define-key global-map [?\C-.] 8859-1-map)
dans votre $HOME/.emacs. (Cette dernière ligne marche dans un xterm, en utilisant emacs -nw, mais il faut alors mettre
        XTerm*VT100.Translations:       #override\n\
        Ctrl <KeyPress> . : string("\0308")
dans votre .Xresources.) NDT: fichiers pour clavier Qwerty, à vérifier pour azerty.

B. Pour less, mettez LESSCHARSET=latin1 dans l'environment.

C. Pour ls, mettez l'option -N. (A priori en faisant un alias.)

D. Pour bash (version 1.13.*), mettez

        set meta-flag on
        set convert-meta off
et, selon le Danish-HOWTO,
        set output-meta on
dans votre $HOME/.inputrc.

E. Pour tcsh, définissez les variables:

        setenv LANG     fr_FR   (ou fr_CA, fr_CH, fr_BE...)
        setenv LC_CTYPE iso_8859_1
Si nls est installé, les routines correspondantes sont utilisées. Sinon tcsh agit en iso_8859_1, quelle que soit les valeurs données à LANG et LC_CTYPE. voir la section NATIVE LANGUAGE SYSTEM de tcsh(1). (d'après le Danish-HOWTO: setenv LC_CTYPE ISO-8859-1; stty pass8)

F. Pour flex, donnez l'option -8 si l'analyseur généré doit accepter les entrées 8-bits. (Bien sur qu'il doit le faire !)

G. Pour elm, mettez displaycharset à ISO-8859-1. (Danish HOWTO: LANG=C et LC_CTYPE=ISO-8859-1)

H. Pour les programmes utilisant curses (comme lynx) David Sibley dit:

La version standard de curses utilise le huitième bit pour la vidéo inversée (voir le flag _STANDOUT défini dans /usr/include/curses.h). Cependant ncurses semble fonctionner en 8-bits et affiche le iso-latin-8859-1 correctement.

I. Pour les programmes utilisant groff (comme man), utilisez le -Tlatin1 au lieu de -Tascii. Les vieilles versions de man utilisent aussi col, et le point suivant s'applique aussi.

J. Pout col, assurez-vous 1) qu'il a été corrigé et fait un setlocale(LC_CTYPE,""); et 2) de définir LC_CTYPE=ISO-8859-1 dans l'environment.

K. Pour rlogin, utilisez l'option -8.

L. Pour joe, sunsite.unc.edu:/pub/Linux/apps/editors/joe-1.0.8-linux.tar.gz devrait marcher après édition du fichier de configuration. J'ai aussi lu: joe: mettez l'option -asis dans /usr/lib/joerc en première colonne.

M. Pour LaTeX: \documentstyle[isolatin]{article}.
Pour LaTeX2e: \documentclass{article}\usepackage{isolatin} ou isolatin.sty est disponible à ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit .

Une belle discussion sur le thème de l'ISO-8859-1 et sur comment manipuler les caractères 8-bits est disponible dans ftp://grasp.insa-lyon.fr/pub/faq/fr/accents (en français). Une autre, en anglais, peut être trouvée à ftp://rtfm.mit.edu/pub/usenet-by-group/comp.answers/character-sets/iso-8859-1-faq . Encore une autre(?): ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit/FAQ-ISO-8859-1 .


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre