3. Il set di Caratteri

Indice di questa sezione

Di certo vi stupirà sapere che lo standard POSIX, e quindi anche Linux, prevede il supporto delle regole nazionali, che vogliono dire set di caratteri, modo di scrivere data, ora, numeri in generale e i messaggi di sistema.

Non vi stupirà sapere che Linux supporta per ora solo il set di caratteri, mentre viene lasciato al futuro lo sviluppo del resto.

Governano la cosa delle variabili d'ambiente. In ordine:

LC_ALL

(oppure LANG) E' la variabile "generale" del gruppo, serve a definire una regola generale (il paese) con cui poi assegnare le variabili che vengono sotto.

LC_COLLATE

Influisce sulle regoole di parsing di alcune funzioni C.

LC_CTYPE

Definisce il set di caratteri.

LC_MONETARY

Definisce come devono essere scritti i numeri, ovvero quale, tra virgola e punto, e' il separatore di decimali e migliaia e viceversa.

LC_MESSAGES

Definisce in che linguaggio devono essere scritti i messaggi di sistema.

LC_TIME

Definisce come deve essere stampata l'ora corrente.

Come consiglio personale, visto il mio alto senso dello Stato, e vista la fiducia in un roseo futuro, consiglio di aggiungere questo nel proprio $(HOME)/.profile o /etc/profile per sh-type shells:


        export LANG=it
        export LC_CTYPE=iso-8859-1

Inoltre, se si vuole usare nomi di files con lettere accentate è bene aggiungere anche questo nel proprio $(HOME)/.inputrc


        set meta-flag on
        set convert-meta off
        set output-meta on

Oppure se avete c-type shells:


        setenv LANG it
        setenv LC_CTYPE iso-8859-1

Il primo serve per scaramanzia (sembra che XFree86 ne tenga conto...), mentre il secondo e' una forzatura per evitare problemi.

Come sempre la man page di locale(7) e' lettura molto consigliata, come un giro per /var/X11R6/lib/locale, che sembra essere l'unica implementazione di locale oggi funzionante.

Ulteriori informazioni possono essere recuperate nei seguenti testi:

ftp://grasp.insa-lyon.fr/pub/faq/fr/accents , in Francese, ftp://rtfm.mit.edu/pub/usenet-by-group/comp.answers/character-sets/iso-8859-1-faq in inglese e anche ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit/FAQ-ISO-8859-1 .

Tutti finito, direte voi. Beh, quasi...

Ora il problema è far capire alle applicazioni ``cattive'' che vogliamo avere i caratteri accentati. Questi hanno la interessante proprietà che sono lunghi 8 bit, mentre molti programmi ne considerano solo 7, perchè è da 7 bit il codice ASCII internazionalemte riconosciuto.

3.1 Kernel

Per prima cosa l'ottavo bit deve sopravvivere nel kernel, quindi è buona cosa dare questo comando (anche se stty di default ha queste impostazioni, controllare con stty -a):


        stty cs8 -istrip -parenb

3.2 Emacs 19

Come sempre emacs e' molto particolare. Avvisiamolo che vogliamo i caratteri accentati con :


        (standard-display-european t)
        (set-input-mode nil nil 1)
        (require 'iso-syntax)

        (load-file "iso-insert.el")
        (define-key global-map [?\C-.] 8859-1-map)

Aggiunto al nostro bravo $(HOME)/.emacs

Inoltre, se si usa Emacs in un Xterm (NO XEmacs o LEmacs!!!), è anche necessario aggiungere nel proprio $(HOME)/.XDefaults:


        XTerm*VT100.Translations:       #override\n\
        Ctrl <KeyPress> . : string("\0308")

3.3 ls

Anche qui vogliamo che i nomi di files con lettere accentate vengano correttamente visualizzati. Quindi:


        alias ls "ls -N"

sempre nel solito $(HOME)/.profile o /etc/profile.

3.4 elm

Aggiungere le seguenti righe nel file /var/lib/elm/elm.rc o nel proprio $(HOME)/.elm/elmrc:


        displaycharset = iso-8859-1
        charset = iso-8859-1
        textencoding = 8bit

3.5 joe

Basta editare il file di configurazione /usr/lib/joe/joerc di modo che comprenda la riga (con il ``-'' sulla colonna 1):


        -asis           Characters 128 - 255 shown as-is

3.6 Altro

Mancano parecchi programmi all'appello. Alcuni perchè hanno una loro sezione dedicata nel seguito, come il TeX, altri perchè non ho tempo e voglia di leggere man pages e doc di programmi che non uso. Mandatemi delle istruzioni che mi fiderò...

3.7 Stampante & DOS

Non dimeticatevi di settare correttamente la vostra stampante, in modo che sia impostata per la CodePage 850.

Questo e' il nome del set di caratteri ISO-8859-1 sotto Dos. Almeno così ero convinto, visto che il manuale del dos recita ``CP 850, o tabella di caratteri Latina 1''.

Poi ho verificato (mai fidarsi di gente che guadagna troppi soldi l'anno...) e non è propriamente la stessa cosa.

L'unica soluzione è fare un filtro per fare una traslazione in fase di stampa, o stampare in qualche altro formato, tipo PostScript.

Se qualcuno si offre volontario per fare o ha già fatto un filtro in sed, awk, perl o un'altro qualsiasi di questi ammenicoli, si faccia vivo, e si renda disponibile.


Capitolo Successivo, Capitolo Precedente

Indice di questo capitolo, Indice generale

Inizio del documento, Inizio di questo Capitolo