Provided by: manpages-it_4.23.1-1_all bug

NOME

       charsets - gli standard degli insiemi di caratteri e internazionalizzazione

DESCRIZIONE

       Questa  pagina  di  manuale  fa  una  panoramica  sui  diversi standard per gli insiemi di
       caratteri e su come sono stati usati in Linux prima che Unicode  diventasse  onnipresente.
       Alcune  di queste informazioni sono ancora utili per le persone che lavorano con sistemi e
       documentazione datati.

       Gli standard discussi includono ASCII, GB 2312, ISO/IEC 8859, JIS, KOI8-R, KS e Unicode.

       Verrà data maggiore importanza agli insiemi di caratteri effettivamente usati come insiemi
       di  caratteri  di  localizzazione, non sulla miriade di altri insiemi presenti nei dati in
       altri sistemi.

   ASCII
       ASCII (American Standard Code  For  Information  Interchange)  è  l'insieme  di  caratteri
       originale  a  7 bit creato in origine per l'inglese americano; è noto anche come US-ASCII.
       Viene ora descritto dallo standard ISO/IEC 646:1991 IRV (International Reference Version).

       Sono apparse diverse varianti ASCII che sostituiscono il simbolo del dollaro con i simboli
       di  altre  valute,  e  la punteggiatura con caratteri alfabetici non inglesi per includere
       altri caratteri a 7 bit tedeschi, francesi, spagnoli ed altri. Sono  tutte  deprecate,  in
       quanto  glibc  non  supporta localizzazioni in cui gli insiemi di caratteri non siano veri
       insiemi di ASCII.

       Poiché Unicode, quando si usa UTF-8, è compatibile con ASCII, un testo semplice in formato
       ASCII viene ugualmente interpretato correttamente sui sistemi moderni che usano UTF-8.

   ISO/IEC 8859
       ISO/IEC 8859  è  una  serie  di 15 insiemi di caratteri a 8 bit che contengono ASCII nella
       metà bassa (quella a 7 bit), caratteri invisibili di controllo nelle posizioni  da  128  a
       159 e 96 grafici a larghezza fissa nelle posizioni 160–255.

       Di  questi,  il  più  importante  è  ISO/IEC 8859-1  ("Latin Alphabet No. 1" / Latin-1). È
       adottato  diffusamente  e  supportato  da  diversi  sistemi,  e  lo  si  sta  gradualmente
       sostituendo con Unicode. I caratteri di ISO/IEC 8859-1 sono anche i primi 256 caratteri di
       Unicode.

       Il supporto di console per gli altri insiemi di carattere ISO/IEC 8859  è  disponibile  in
       Linux grazie a utilità in modalità utente (come setfont(8)) che modificano le associazioni
       di tasti e la tabella grafica EGA, e impiegano  una  "mappa  utente"  per  la  tabella  di
       caratteri nel driver di console.

       Ecco una breve descrizione di ciascun insieme di caratteri:

       ISO/IEC 8859-1 (Latin-1)
              Latin-1 copre molte delle lingue europee occidentali, come albanese, basco, danese,
              inglese,  faeroese,   galiziano,   irlandese,   islandese,   italiano,   norvegese,
              portoghese,  spagnolo  e  svedese.  La  mancanza  delle  legature IJ/ij (olandese), œ
              (francese) e virgolette „vecchio stile“ (tedesco) è ritenuta tollerabile.

       ISO/IEC 8859-2 (Latin-2)
              Latin-2 supporta molte lingue dell'Europa centrale e orientale a  caratteri  latini
              come  bosniaco,  ceco,  croato,  polacco,  slovacco,  sloveno, tedesco e ungherese.
              Sostituire il rumeno ș/ț con ş/ţ è ritenuto tollerabile.

       ISO/IEC 8859-3 (Latin-3)
              Latin-3 è stato creato per esperanto, maltese e turco; per il  turco  è  stato  poi
              soppiantato da ISO/IEC 8859-9.

       ISO/IEC 8859-4 (Latin-4)
              Latin-4  ha  introdotto  lettere  per le lingue nord europee come estone, lettone e
              lituano, ma è stato soppiantato da ISO/IEC 8859-10 e ISO/IEC 8859-13.

       ISO/IEC 8859-5
              Lettere cirilliche  per  bulgaro,  bellorusso,  macedone,  russo,  serbo  e  (quasi
              completamente)  ucraino.  Non  è  mai  stato  usato  molto;  vedere  più  avanti la
              discussione su KOI8-R.

       ISO/IEC 8859-6
              È stato creato per l'arabo. La tabella di glifi ISO/IEC 8859-6 contiene un  insieme
              di   caratteri   fissi   con   lettere   distinte,  ma  un  appropriato  motore  di
              visualizzazione dovrebbe combinarli usando le corrette forme  iniziali,  mediane  e
              finali.

       ISO/IEC 8859-7
              È stato creato per il greco moderno nel 1987, e aggiornato nel 2003.

       ISO/IEC 8859-8
              Supporta  l'ebraico  moderno  senza  niqud  (segni  di  punteggiatura).  Niqud e lo
              sviluppo completo dell'ebraico della Bibbia vanno al di là degli  scopi  di  questo
              insieme di caratteri.

       ISO/IEC 8859-9 (Latin-5)
              Questa  è  una  variante di Latin-1 che sostituisce le lettere islandesi con quelle
              turche.

       ISO/IEC 8859-10 (Latin-6)
              Latin-6 ha aggiunto le inuit (groenlandese) e sami (lappone) mancanti  in  Latin-4,
              così da coprire l'intera area nordica.

       ISO/IEC 8859-11
              Supporta l'alfabeto thai ed è quasi era identica allo standard TIS-620.

       ISO/IEC 8859-12
              Questo insieme di caratteri non esiste.

       ISO/IEC 8859-13 (Latin-7)
              Supporta il linguaggio baltico Rim: in particolare, include i caratteri lettoni non
              inseriti in Latin-4.

       ISO/IEC 8859-14 (Latin-8)
              Insieme  di  caratteri  celtici,  che  comprende  l'irlandese  antico,  la   lingua
              dell'isola  di  Man,  il  gaelico,  il  gallese,  la  lingua della Cornovaglia e il
              bretone.

       ISO/IEC 8859-15 (Latin-9)
              Latin-9 è simile al Latin-1 comunemente usato, ma sostituisce alcune  simboli  meno
              comuni  con  il simbolo dell'Euro e alcune lettere francesi e finlandesi assenti in
              Latin-1.

       ISO/IEC 8859-16 (Latin-10)
              Questo insieme comprende molte lingue del sud-est europeo, e  soprattutto  supporta
              il rumeno in modo più completo del Latin-2.

   KOI8-R / KOI8-U
       KOI8-R  è  un  insieme di caratteri non ISO molto diffuso in Russia prima dell'Unicode. La
       metà bassa è ASCII; la metà alta contiene un insieme di caratteri cirillici, concepito  un
       po'  meglio  di quello di ISO/IEC 8859-5. KOI8-U, basato su KOI8-R, ha un miglior supporto
       per l'ucraino. Nessuno di questi insiemi  è  compatibile  con  ISO/IEC 2022,  diversamente
       dalla serie ISO/IEC 8859.

       Il  supporto  di console per KOI8-R è disponibile in Linux grazie a utilità in modo utente
       che modificano le associazioni di tastiera e la  tabella  grafica  EGA,  e  impiegano  una
       "mappa utente" per la tabella di caratteri nel driver di console.

   GB 2312
       GB  2312  è  un  insieme  nazionale  di  caratteri standard cinesi di terraferma usato per
       esprimere il cinese semplificato. Proprio come JIS X 0208, i caratteri vengono mappati  in
       una  matrice  94x94  a  due  byte  usata  per  costruire  EUC-CN. EUC-CN è la codifica più
       importante per Linux e include ASCII e GB 2312. Si noti che EUC-CN spesso è  chiamato  GB,
       GB 2312 o CN-GB.

   Big5
       Big5  era  un  insieme di caratteri popolare in Taiwan che esprime il cinese tradizionale.
       (Big5 è sia un insieme di caratteri che una codifica). È  un  super-insieme  di  ASCII.  I
       caratteri non ASCII vengono espressi in due byte. I byte 0xa1–0xfe vengono usati come byte
       iniziali per i caratteri a due byte. Big5 e la sua estensione  erano  largamente  usati  a
       Taiwan e Hong Kong. Non è conforme a ISO/IEC 2022.

   JIS X 0208
       JIS  X  0208  è  un  insieme  nazionale di caratteri standard giapponesi. Anche se ci sono
       alcuni altri insiemi di caratteri standard in Giappone (come JIS X 0201, JIS X 0212 e  JIS
       X  0213),  questo  è il più importante. I caratteri vengono mappati in una matrice 94x94 a
       due byte, e ogni byte è compreso nell'intervallo 0x21–0x7e. Si noti che JIS X  0208  è  un
       insieme  di  caratteri,  non  una codifica: questo significa che JIS X 0208 non può essere
       usato per indicare dati di testo. Si usa come  componente  per  costruire  codifiche  come
       EUC-JP,  Shift_JIS  e  ISO/IEC 2022-JP. EUC-JP è la codifica più importante sotto Linux, e
       include ASCII e JIS X 0208. In JIS X 0208 i caratteri vengono espressi in due byte, ognuno
       dei quali è il codice JIS X 0208 più 0x80.

   KS X 1001
       KS X 1001 è un insieme nazionale di caratteri standard coreani. Proprio come JIS X 0208, i
       caratteri vengono mappati in una matrice 94x94 a due byte. KS X 1001 si  usa  come  JIS  X
       0208, come componente per costruire codifiche come EUC-KR, Johab e ISO/IEC 2022-KR. EUC-KR
       è la codifica più importante sotto Linux, e include ASCII E KS X 1001.  KS  C  5601  è  il
       vecchio nome di KS X 1001.

   ISO/IEC 2022 e ISO/IEC 4873
       Gli  standard ISO/IEC 2022 e ISO/IEC 4873 descrivono un modello di controllo dei caratteri
       basato sugli usi di VT100. Questo modello è (parzialmente) supportato dal kernel di  Linux
       e  da xterm(1). Sono state definite diverse codifiche di caratteri basate su ISO/IEC 2002,
       specialmente per il giapponese.

       Ci sono quattro insiemi di caratteri grafici, chiamati G0, G1, G2 e  G3:  uno  di  loro  è
       l'insieme di caratteri attuale per i codici con bit più alto zero (inizialmente G0), e uno
       di loro è l'insieme attuale per i codici con bit più alto uno (inizialmente  G1).  Ciascun
       insieme  di  caratteri grafici ha 94 o 96 caratteri ed è essenzialmente un insieme a sette
       bit. Usa i codici 040–0177 (041–0176)  oppure  0240–0377  (0241–0376).  G0  ha  sempre  94
       elementi e usa i codici 041–0176.

       Si  passa da un insieme all'altro attraverso le funzioni di cambiamento ^N (SO or LS1), ^O
       (SI or LS0), ESC n (LS2), ESC o (LS3), ESC N (SS2), ESC O  (SS3),  ESC  ~  (LS1R),  ESC  }
       (LS2R),  ESC  |  (LS3R).   La  funzione  LSn fa sì che l'insieme Gn sia quello attuale per
       codici con bit più alto zero. La funzione LSnR fa sì che l'insieme Gn sia  quello  attuale
       per  codici  con  bit  più  alto uno. La funzione SSn fa sì che l'insieme Gn (n=2 o 3) sia
       quello attuale per il solo carattere successivo (qualsiasi sia il valore del suo  bit  più
       alto).

       Un  insieme da 94 caratteri viene denotato come insieme Gn da una sequenza di escape ESC (
       xx (per G0), ESC ) xx (per G1), ESC * xx (per G2), ESC + xx (per G3), dove xx è un simbolo
       o  una coppia di simboli trovati in ISO/IEC 2375 International Register of Coded Character
       Sets. Per esempio, ESC ( @ seleziona l'insieme di caratteri ISO/IEC 646 come G0, ESC  (  A
       seleziona  l'insieme  standard UK (con la sterlina al posto del simbolo numerico), ESC ( B
       seleziona l'ASCII (col dollaro al posto del simbolo  monetario),  ESC  (  M  seleziona  un
       insieme  di caratteri per le lingue africane, ESC ( ! A seleziona l'insieme cubano, e così
       via.

       Un insieme da 96 caratteri viene denotato come l'insieme Gn da una sequenza di escape  ESC
       -  xx  (per  G1),  ESC  . xx (per G2), o ESC / xx (per G3). Per esempio, ESC - G seleziona
       l'alfabeto ebraico come G1.

       Un insieme multibyte viene denotato come insieme Gn da una sequenza di escape ESC $  xx  o
       ESC  $  (  xx (per G0), ESC $ ) xx (per G1), ESC $ * xx (per G2), ESC $ + xx (per G3). Per
       esempio, ESC $ ( C seleziona l'insieme di caratteri coreano come G0. L'insieme  giapponese
       selezionato da ESC $ B ha una versione più recente selezionata da ESC & @ ESC $ B.

       ISO/IEC 4873  stabilisce  un  uso più restrittivo degli insiemi, in cui G0 è fisso (sempre
       ASCII), facendo sì che G1, G2 e G3 possano essere invocati solo per codici in cui  il  bit
       più  alto  è  impostato. In particolare, ^N e ^O non vengono più usati, ESC (xx può essere
       usato solo con xx=B, e ESC) xx, ESC * xx, ESC + xx sono  equivalenti,  rispettivamente,  a
       ESC - xx, ESC . xx, ESC / xx.

   TIS-620
       TIS-620  è un insieme nazionale di caratteri standard tailandesi, ed è un super-insieme di
       ASCII. Come le serie ISO/IEC 8859, i caratteri Thai sono mappati in 0xa1–0xfe.

   Unicode
       Unicode (ISO/IEC 10646) è uno standard il cui scopo è rappresentare senza  ambiguità  ogni
       carattere  di  ogni lingua umana. La struttura di Unicode permette 20.1 bit per codificare
       qualunque carattere. Dato che molti computer non includono  interi  a  20.1  bit,  Unicode
       solitamente  è  internamente codificato con interi a 32 bit e con una serie di interi a 16
       bit (UTF-16, che ha bisogno di due interi a  16  bit  solo  quando  codifica  alcuni  rari
       caratteri) o con una serie di byte a 8 bit (UTF-8).

       Linux  rappresenta Unicode tramite il "Formato di trasferimento Unicode" (Unicode Transfer
       Format) a 8 bit (UTF-8). UTF-8 è una codifica di Unicode a lunghezza variabile. Usa 1 byte
       per  codificare 7 bit, 2 byte per 11 bit, 3 byte per 16 bit, 4 byte per 21 bit, 5 byte per
       26 bit e 6 byte per 31 bit.

       Poniamo che 0,1,x sia uno zero, uno o un bit  arbitrario.  Un  byte  0xxxxxxx  rappresenta
       l'Unicode  00000000  0xxxxxxx, che codifica lo stesso simbolo dell'ASCII 0xxxxxxx. Perciò,
       ASCII rimane invariato in  UTF-8  e  coloro  che  usano  solo  ASCII  non  notano  nessuna
       differenza: né nel codice, né nella dimensione del file.

       Un  byte  110xxxxx  è  l'inizio di una codifica a due byte, dove 110xxxxx 10yyyyyy sta per
       00000xxx xxyyyyyy. Un byte 1110xxxx è l'inizio di una codifica a tre byte,  dove  1110xxxx
       10yyyyyy  10zzzzzz  sta  per  xxxxyyyy yyzzzzzz. (Se si usa UTF-8 per codificare l'ISO/IEC
       10646 a 31 bit, la progressione continua fino alle codifiche a 6 byte.)

       Per la maggior parte dei testi codificati con insiemi di  caratteri  ISO/IEC 8859,  questo
       significa  che  i  caratteri  al di fuori dell'ASCII sono ora codificati con due byte. Ciò
       tende ad espandere un file ordinario di testo dell'uno o due per cento. Per i testi  russi
       o  greci,  espande  file  ordinari di testo del 100%, dato che il testo in queste lingue è
       quasi tutto al di fuori dell'ASCII. Per  gli  utilizzatori  giapponesi  significa  che  la
       codifica  a  16  bit  oggi comunemente usata userà tre byte. Anche se ci sono algoritmi di
       conversione da alcuni insiemi di caratteri (specialmente  ISO/IEC 8859-1)  a  Unicode,  la
       conversione  generale  richiede  l'uso  di  tabelle  di  conversione,  che  possono essere
       piuttosto grandi per codifiche a 16 bit.

       Si noti che UTF-8 è autosincronizzante: 10xxxxxx è una coda, e qualsiasi altro byte  è  la
       testa  di  un codice. Si noti anche che l'unico modo in cui un byte ASCII può comparire in
       una sequenza UTF-8 è come se stesso. In particolare, non ci sono byte NULL ('\0') inseriti
       o '/'s che formano una parte di un codice più lungo.

       Poiché ASCII e, in particolare, NUL e '/' sono invariati, il kernel non si rende conto che
       si sta usando UTF-8. Non gli interessa il significato dei byte di cui si occupa.

       Le sequenze di dati Unicode sono solitamente rese attraverso tabelle  di  "sottocaratteri"
       che  associano  sottoinsiemi  di  Unicode a glifi. Internamente, il kernel usa Unicode per
       descrivere il sottoinsieme di caratteri caricato nella RAM video. Ciò significa che  nella
       console  Linux  in  modalità  UTF-8  si  può usare un insieme di caratteri con 512 simboli
       diversi. Questo non è sufficiente per giapponese,  cinese  e  coreano,  ma  basta  per  la
       maggior parte degli altri utilizzi.

VEDERE ANCHE

       iconv(1), ascii(7), iso_8859-1(7), unicode(7), utf-8(7)

TRADUZIONE

       La  traduzione  italiana  di  questa  pagina di manuale è stata creata da Ottavio G. Rizzo
       <rizzo@pluto.linux.it>,     Elisabetta     Galli     <lab@kkk.it>,      Marco      Curreli
       <marcocurreli@tiscali.it> e Giuseppe Sacco <eppesuig@debian.org>

       Questa  traduzione è documentazione libera; leggere la GNU General Public License Versione
       3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ o successiva per le condizioni di copyright.
       Non ci assumiamo alcuna responsabilità.

       Per  segnalare  errori nella traduzione di questa pagina di manuale inviare un messaggio a
       ⟨pluto-ildp@lists.pluto.it⟩.