[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 419.   Applicativi utili durante la fase di transizione all'insieme di caratteri universale

Durante la fase di transizione all'insieme di caratteri universale è importante la possibilità di convertire file di testo con codifiche differenti; inoltre è importante poter utilizzare programmi di creazione e modifica di questi file, potendo leggere e salvare con codifiche alternative.

419.1   Recode

Recode (1) è un programma per la conversione di file da un insieme di caratteri a un altro. Recode non si limita semplicemente a questo; spesso è in grado di intervenire su codifiche composte da sequenze di caratteri, anche se in queste situazioni il suo utilizzo si complica e i risultati non sono sempre garantiti.

recode [opzioni] codifica_prima..codifica_dopo [file...]

Osservando lo schema sintattico mostrato, si può vedere che è necessario indicare il tipo di conversione attraverso due parole chiave: la prima serve a stabilire il modo in cui sono codificati i dati in ingresso, la seconda stabilisce in che modo li si vuole trasformare in uscita.

Uno o più file in ingresso possono essere indicati alla fine della riga di comando, facendo sì che Recode tenti di sovrascriverli; in alternativa, un file in ingresso può essere fornito attraverso lo standard input, ottenendo il risultato della conversione dallo standard output.

Bisogna essere prudenti con Recode quando si indicano i file nella riga di comando, perché la conversione potrebbe essere irreversibile.

Nel suo piccolo, Recode è un programma complesso. Questa sezione mostra solo alcuni aspetti banali, mentre per sfruttare bene tutte le sue potenzialità è necessario leggere la documentazione originale: info recode.

Tabella 419.1. Alcune opzioni.

Opzione Descrizione
-l [codifica]
--list[=codifica]
Questa opzione, usata senza argomento, mostra l'elenco delle codifiche gestite; con l'aggiunta del nome di una codifica, si ottiene invece una tabella della codifica stessa.
-g
--graphics
Questa opzione riguarda la conversione dall'insieme di caratteri IBM-PC, a un altro tipo, dove si vuole tentare di trasformare in qualche modo i simboli grafici tipici di quella codifica. È evidente che questa conversione è irreversibile.

Le codifiche da utilizzare nelle conversioni sono indicate attraverso la notazione codifica_prima..codifica_dopo, come si vede nello schema sintattico introduttivo. Le parole chiave utilizzate per questo possono essere indicate indifferentemente utilizzando le lettere minuscole o maiuscole. L'elenco delle codifiche (e quindi delle trasformazioni possibili) è molto lungo e potrebbe essere ottenuto un riepilogo attraverso l'opzione -l da sola. Tuttavia, sarebbe meglio leggere prima ciò che è stato annotato nel documento info recode al riguardo, per non rischiare di trovarsi poi nei pasticci.

Tabella 419.2. Alcune parole chiave che si possono usare per individuare le codifiche.

Codifica Descrizione
IBM437
437
cp437
Rappresenta la codifica IBM usata normalmente nel Dos. Quando si converte da questa codifica a un'altra, i codici di interruzione di riga vengono lasciati inalterati.
IBM-PC
ibmpc
È praticamente la stessa codifica IBM437, con la differenza che quando si converte da questa codifica a un'altra, i codici di interruzione di riga vengono trasformati.
IBM850
850
cp850
Rappresenta la codifica IBM usata normalmente nel Dos per la localizzazione europea.
ISO_8859-1:1987
ISO_8859-1
ISO-8859-1
CP819
IBM819
iso-ir-100
l1
latin1
Si riferisce alla codifica ISO 8859-1.
UTF-8
UTF8
Si riferisce alla codifica UTF-8.

Segue la descrizione di alcuni esempi.

419.2   Iconv

Iconv (2) è un programma che fa parte del pacchetto delle librerie GNU C e serve a convertire un file da un insieme di caratteri a un altro. Lo schema sintattico seguente mostra l'utilizzo normale del programma:

iconv -f da_codifica -t a_codifica [altre_opzioni] [file...]

La codifica viene indicata attraverso una parola chiave e l'elenco completo degli insiemi di caratteri conosciuti si ottiene con l'opzione ---list, usata da sola:

iconv --list

Il file da convertire viene indicato normalmente alla fine della riga di comando, ma in sua mancanza viene usato lo standard input; generalmente il risultato della conversione viene emesso attraverso lo standard output, a meno che sia usata espressamente l'opzione -o, con la quale si indica il nome di un file da creare per questo scopo.

Tabella 419.3. Alcune opzioni.

Opzione Descrizione
-f codifica_di_partenza
--from-code codifica_di_partenza
Specifica la codifica di origine.
-t codifica_di_destinazione
--to-code codifica_di_destinazione
Specifica la codifica del file da generare.
--list
Elenca le parole chiave riconosciute che individuano le varie codifiche gestibili dal programma. Si usa questa opzione da sola.
-o file_da_generare
--output file_da_generare
Richiede di fornire il risultato nel file specificato, senza usare per questo lo standard output.

Le parole chiave utilizzate per individuare la codifica possono essere indicate indifferentemente utilizzando le lettere minuscole o maiuscole. Si deve osservare che non tutte le trasformazioni sono possibili; pertanto, di fronte a richieste impossibili, il programma si rifiuta di procedere, così come si rifiuta di farlo se il file in ingresso non è conforme alla codifica dichiarata per questo.

Tabella 419.4. Alcune parole chiave che si possono usare per individuare le codifiche.

Codifica Descrizione
IBM437
437
CP437
Rappresenta la codifica IBM usata normalmente nel Dos.
IBM850
850
CP850
Rappresenta la codifica IBM usata normalmente nel Dos per la localizzazione europea.
LATIN1
8859_1
ISO-8859-1
ISO_8859-1
ISO_8859-1:1987
ISO8859-1
ISO88591
Si riferisce alla codifica ISO 8859-1.
UTF-8
UTF8
Si riferisce alla codifica UTF-8.

Segue la descrizione di alcuni esempi.

419.3   Gedit

Gedit (3) è un programma per la creazione e la modifica di file di testo, associato allo sviluppo di Gnome; il suo eseguibile è gedit, che in generale non richiede l'uso di opzioni o argomenti particolari. Il vantaggio di usare Gedit rispetto ad altri programmi analoghi sta nella facilità con cui è possibile gestire file che utilizzano la codifica UTF-8, anche se la configurazione locale non dovesse essere ancora predisposta per questo.

Figura 419.5. L'aspetto generale di Gedit durante il funzionamento, secondo la localizzazione inglese.

gedit

La configurazione predefinita di Gedit prevede di salvare utilizzando la codifica UTF-8; tuttavia, quando si salva attribuendo un nome, è possibile specificare il formato; oppure, se la versione di Gedit lo prevede, è possibile modificare questo comportamento tra le preferenze, come si vede nella figura 419.6.

Figura 419.6. Configurazione delle preferenze sul formato da usare quando si salva un file con Gedit.

gedit-preferenze-save

419.4   Yudit

Yudit (4) è un programma per la creazione e la modifica di file di testo secondo varie codifiche. Yudit è comunque un programma più complesso di quello che si può pensare a prima vista, che si avvale di diverse componenti, di cui yudit è comunque l'eseguibile principale.

yudit [-e codifica] [file]...

Come si vede dal modello sintattico che riguarda l'uso dell'eseguibile yudit, oltre che indicare i nomi dei file che si vogliono aprire per la modifica, è possibile specificare la codifica di questi. Successivamente, durante il funzionamento, è poi possibile salvare secondo una codifica differente, oppure rimanere su quella iniziale; inoltre è possibile cambiare il tipo di codice di interruzione di riga. La sigla da usare per identificare la codifica dipende dal programma uniconv, che fa sempre parte di Yudit; tuttavia, per sapere esattamente quali sono i nomi validi, è necessario avviare proprio uniconv con un'opzione qualunque, purché non valida, perché la documentazione delle pagine di manuale potrebbe essere errata:

uniconv -h[Invio]

uniconv version 2.6 GNU(c) Gaspar Sinai
USAGE: uniconv [-out file] [-in file] [-decode name] [-encode name] \
  \[-fromdos] [-todos] [-frommac] [-tomac] Currently known built-in encodings: utf-8, utf-8-s, utf-7, java, java-s, ncr, ucs-2, ucs-2-le, ucs-2-be, \
  \utf-16, utf-16-le, utf-16-be, euc-jp, euc-jp-3, euc-kr, big-5, hz, \
  \iso-2022-x11, ksc-5601-x11, gb-18030, gb-2312-x11, gb-2312, iso-2022-jp, \
  \iso-2022-jp-3, shift-jis, shift-jis-3, uhc, johab, unicode, shape, \
  \deshape, bidi Currently known external encodings: ArabicTranslit, TCVNcombine, Devanagari, OldItalic, GrandLatin, tscii, \
  \Gurmukhi, mik, Russian-ISO-Translit, Ori-Inscript, CS-dead, \
  \Croatian, iso-8859-7, Hangul, koi8-r, GreekBible, iso-8859-5, \
  \ksc-5601-l, Danish, Tel-Inscript, windows-1255, Mnemonic, Kanji, \
  \VNtelex, Dev-Inscript, Yiddish, Welsh, iso-8859-4, Polish, ksc-5601-r, \
  \Arabic, example, GreekMonotonic, SR-Cyrillic, Bulgarian, \
  \ASCII-IPA, Belarusian, gb-2312-l, category, Esperanto, Dutch, \
  \iso-646, Spanish, TeX, KOI8_R_KEY, SGML, GreekPolytonic, \
  \iso-8859e, Unicode, Lithuanian, ArmenianWest, Kan-Inscript, \
  \iso-8859-8, RU-translit, Hungarian-prefix, ArmenianEast, precompose, \
  \German, Thai, iso-8859-1, Mal-Inscript, smeTeX, iso-8859-9, \
  \Azeri, Hangul2, Russian, cp-1251, iso-8859-3, iso-8859-6, \
  \Hebrew, iso-8859-2, Georgian, viscii, SK, Cyrillic, Guarani, \
  \HebrewIsraeli, DE-RU, VietnameseTelex, Ben-Inscript, jis-0212, \
  \Guj-Inscript, jis-0201, French, RU-javerty, gb-2312-r, \
  \Hungarian, jis-0208, Chinese-CJ, Vietnamese, Czech, tcvn, \
  \Dev-Phonetic, Tam-Inscript, Troff, Hangul3, TIS_620, Ethiopic, \
  \wingreek, Kana, Malayalam, indic, Tamil, Cherokee, cluster, \
  \ksx-1001, koi8-c, rovas, Oriya, ArabicKeyboard, Slovenian, \
  \Bengali, iso-8859-16, Ukr_Extended, Klingon, jis-0213-2, \
  \OldHungarian, Gujarati, TCVNkey, Israeli, cp-1250, Kannada, \
  \Gur-Inscript, iso-8859-15, jis-0213-1, Ukrainian, koi8-u, mirroring, Telugu datapath settings: /usr/share/yudit/data:/usr/share/yudit/data:/home/tizio/.yudit/data:\
  \/usr/share/yudit/data. example: /uniconv -decode Hungarian -encode iso-8859-2 example: Sinai Ga'spa'r <eof>

Dagli esempi visti, volendo aprire il file prova.txt che inizialmente risulta scritto secondo la codifica ISO 8859-1, si potrebbe usare il comando seguente:

yudit -e iso-8859-1 prova.txt[Invio]

Figura 419.8. Yudit avviato per modificare un file secondo la codifica ISO 8859-1.

yudit-iso-8859-1

Durante il funzionamento dell'eseguibile yudit è possibile controllare l'inserimento dei caratteri da tastiera attraverso la selezione del pulsante <Input>, dal menù di bottoni che appare sulla parte superiore del riquadro, che però non si mostra con il suo nome:

yudit-menu-input

Selezionando il pulsante grafico che si vede evidenziato nella figura, si ottiene una finestra, come nella figura 419.10.

Figura 419.10. La finestra che si ottiene selezionando il pulsante <Input> dal menù.

yudit-menu-input-aperto

Il significato di questo riquadro può risultare oscuro al primo momento; in particolare, nella colonna centrale appare un elenco di nomi, che rappresentano un modo di inserire codici da tastiera, associati ai tasti funzionali, da [F1] a [F12]. Cambiando la modalità di inserimento, cambia il modo in cui si può usare la tastiera: nella colonna di destra si vede in che modo si possono indicare i caratteri più comuni. Per esempio, se si seleziona l'inserimento unicode, per scrivere la lettera «È», si può scrivere u00C8 (si noti che però quanto suggerito sulla colonna di destra potrebbe anche essere errato, ma basta fare qualche tentativo per capire cosa serve veramente).

La colonna a sinistra del riquadro che consente di intervenire nella modalità di inserimento dei caratteri contiene un elenco numeroso di possibilità, che però vanno associate a uno dei 12 tasti, da [F1] a [F12], della colonna centrale. Per esempio, volendo utilizzare la modalità di inserimento denominata SGML, associandola al tasto [F12], si seleziona il nome SGML nella colonna sinistra; si seleziona la voce utilizzata attualmente per il tasto [F12], quindi si seleziona il pulsante grafico che si trova tra la prima e la seconda colonna, in modo da rimpiazzare il nome SGML in quella voce del tasto [F12].

Yudit è un programma molto buono, ma non necessariamente perfetto; pertanto, è probabile che ogni modalità di inserimento abbia i propri difetti. Si tratta di conoscere delle alternative, in modo da poter scegliere cosa funziona meglio per i propri scopi.

L'ultimo pulsante grafico del menù di Yudit serve a modificare il tipo di codice di interruzione di riga. In generale è possibile scegliere tra:

Nome Corrispondenza Utilizzo
Unix <LF> Usato nella maggior parte dei sistemi Unix, compresi i sistemi GNU.
DOS <CR><LF> Usato nei sistemi Dos e MS-Windows.
MAC <CR>

Il secondo pulsante grafico, a partire da sinistra, che appare sulla riga del menù serve a salvare il file:

yudit-menu-save

Usando Yudit si può osservare che il colore del pulsante cambia quando si modifica il file ed è così richiesto di salvare. Selezionando questo pulsante si ottiene un riquadro, con il quale è possibile cambiare il tipo di codifica; lo si vede nella figura 419.13.

Figura 419.13. La finestra che si ottiene selezionando il pulsante <Save>.

yudit-save

Eventualmente, Yudit consente di impartire dei comandi verbali, agendo nel riquadro inferiore. Per esempio, si può usare il comando help per caricare un file contenente le istruzioni generali sul suo funzionamento.

Dei programmi che compongono Yudit è interessante uniprint, che consente di generare un file PostScript da un file di testo, se però sono disponibili i caratteri necessari.

uniprint [-out file_ps] [-in file_txt] [-decode codifica] \
  \[-font file_ttf] [-size dimensione_carattere]

Quello che si vede è una riduzione del modello sintattico complessivo, che prevede anche altre opzioni; in particolare, si può osservare il fatto che la conversione in PostScript richiede l'utilizzo di caratteri TrueType. Per questa ragione, è possibile specificare il file contenente le informazioni sul carattere da usare per la conversione, assieme alla dimensione preferita. L'esempio seguente serve a convertire il file prova.txt nel file prova.ps:

uniprint -out prova.ps -in prova.txt[Invio]

In questo caso, non avendo specificato l'opzione -decode, si intende che il file prova.txt utilizzi la codifica UTF-8; diversamente, si possono utilizzare le codifiche riconosciute da uniconv, come già descritto in precedenza.

419.5   Utilizzo di «luit»

Il programma luit, che fa parte di X, è un filtro che si utilizza per avviare un altro programma, quando il proprio terminale a caratteri è configurato in modo da gestire la codifica UTF-8 (sia per la tastiera, sia per lo schermo) e il programma in questione utilizza una codifica differente:

luit [opzioni] [--] [programma [argomenti]]

Come si può intuire dal modello sintattico, in mancanza dell'indicazione di un programma da avviare, luit avvia una shell. Al posto di descrivere le opzioni di questo programma, vengono mostrati alcuni esempi, a cominciare da quello più semplice, in cui il controllo della conversione avviene semplicemente attraverso la configurazione della variabile LANG:

LC_ALL=en_US.ISO-8859-1 luit mio_programma[Invio]

In questo caso si avvia il programma mio_programma specificando per lui la variabile di ambiente LC_ALL con il valore che si può vedere. Il programma luit fa in modo che i dati provenienti dalla tastiera siano convertiti da UTF-8 a ISO 8859-1, facendo l'opposto per i dati diretti dal programma allo schermo. Si osservi, comunque, che la configurazione locale del tipo en_US.ISO-8859-1 deve essere stata predisposta.

LC_ALL=en_US luit -encoding "ISO 8859-1" mio_programma[Invio]

In questo caso, si rende esplicita la codifica con cui deve funzionare il programma mio_programma, attraverso l'opzione -encoding, secondo la notazione prevista da luit. Per la precisione, si può ottenere l'elenco di tutte le codifiche previste, secondo la notazione di luit, con l'opzione -list:

luit -list[Invio]

Si osservi che quando ci si collega a un elaboratore remoto, nel quale non è prevista una configurazione locale con una codifica UTF-8, è necessario usare luit come già mostrato, per esempio così:

LC_ALL=en_US luit -encoding "ISO 8859-1" ssh nodo[Invio]

Nell'esempio si può riconoscere l'uso del programma ssh, ovvero di Secure Shell.

Si osservi che negli esempi è stata usata la variabile di ambiente LC_ALL, perché questa prende il sopravvento su tutte le variabili LC_* e su LANG.

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) Recode   GNU GPL

2) Iconv   GNU GPL

3) Gedit   GNU GPL

4) Yudit   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome applicativi_utili_durante_la_fase_di_transizione_all_x0027_i.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!