Provided by: manpages-it_4.18.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 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 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 8859
       ISO  8859  is  a  series  of 15 8-bit character sets, all of which have ASCII in their low
       (7-bit) half, invisible control characters in positions 128 to  159,  and  96  fixed-width
       graphics in positions 160–255.

       Of  these,  the  most  important is ISO 8859-1 ("Latin Alphabet No. 1" / Latin-1).  It was
       widely adopted and supported by different systems, and is gradually  being  replaced  with
       Unicode.  The ISO 8859-1 characters are also the first 256 characters of Unicode.

       Il  supporto  di  console  per  gli altri insiemi di carattere 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.

       Here are brief descriptions of each character set:

       8859-1 (Latin-1)
              Latin-1 covers many European languages such as Albanian, Basque,  Danish,  English,
              Faroese,  Galician,  Icelandic, Irish, Italian, Norwegian, Portuguese, Spanish, and
              Swedish.  The lack of the ligatures Dutch IJ/ij, French  œ,  and  old-style  „German“
              quotation marks was considered tolerable.

       8859-2 (Latin-2)
              Latin-2  supports  many  Latin-written  Central and East European languages such as
              Bosnian,  Croatian,  Czech,  German,  Hungarian,  Polish,  Slovak,   and   Slovene.
              Replacing Romanian ș/ț with ş/ţ was considered tolerable.

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

       8859-4 (Latin-4)
              Latin-4 ha introducotto lettere per le lingue nord-occidentali come estone, lettone
              e lituano, ma è stato soppiantato da 8859-10 e 8859-13.

       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.

       8859-6 È  stato  creato  per  l'arabo.  La  tabella di glifi 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.

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

       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.

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

       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.

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

       8859-12
              This character set does not exist.

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

       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.

       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.

       8859-16 (Latin-10)
              This character set covers many Southeast European languages, and  most  importantly
              supports Romanian more completely than 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 8859-5. KOI8-U, basato su KOI8-R, ha un miglior supporto per
       l'ucraino. Nessuno di questi insiemi è compatibile con ISO-2022, diversamente dalla  serie
       ISO 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  was a popular character set in Taiwan to express traditional Chinese.  (Big5 is both
       a character set and an encoding.)  It is a superset of ASCII.   Non-ASCII  characters  are
       expressed  in  two  bytes.   Bytes  0xa1–0xfe  are  used  as  leading  bytes  for two-byte
       characters.  Big5 and its extension were widely used in Taiwan and Hong Kong.  It  is  not
       ISO 2022 compliant.

   JIS X 0208
       JIS  X  0208  is  a  Japanese national standard character set.  Though there are some more
       Japanese national standard character sets (like JIS X 0201, JIS X 0212, and JIS  X  0213),
       this is the most important one.  Characters are mapped into a 94x94 two-byte matrix, whose
       each byte is in the range 0x21–0x7e.  Note that JIS X 0208 is  a  character  set,  not  an
       encoding.   This means that JIS X 0208 itself is not used for expressing text data.  JIS X
       0208 is used as a  component  to  construct  encodings  such  as  EUC-JP,  Shift_JIS,  and
       ISO-2022-JP.  EUC-JP is the most important encoding for Linux and includes ASCII and JIS X
       0208.  In EUC-JP, JIS X 0208 characters are expressed in two bytes, each of which  is  the
       JIS X 0208 code plus 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-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 2022 e ISO 4873
       Gli standard ISO 2022 e 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 2002,
       specialmente per il giapponese.

       There are 4 graphic character sets, called G0, G1, G2, and G3, and  one  of  them  is  the
       current  character set for codes with high bit zero (initially G0), and one of them is the
       current character set for codes with high bit one (initially G1).  Each graphic  character
       set  has  94  or  96  characters, and is essentially a 7-bit character set.  It uses codes
       either 040–0177 (041–0176) or 0240–0377 (0241–0376).  G0 always has size 94 and uses codes
       041–0176.

       Switching  between character sets is done using the shift functions ^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).  The function LSn makes character set Gn the current one for codes with high
       bit zero.  The function LSnR makes character set Gn the current one for  codes  with  high
       bit one.  The function SSn makes character set Gn (n=2 or 3)  the current one for the next
       character only (regardless of the value of its high order bit).

       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 2375  International  Register  of  Coded  Character
       Sets.  Per  esempio,   ESC  (  @ seleziona l'insieme di caratteri ISO 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 4873 stipulates a narrower use of character sets, where G0 is fixed (always ASCII), so
       that  G1,  G2,  and  G3  can  be  invoked  only for codes with the high order bit set.  In
       particular, ^N and ^O are not used anymore, ESC ( xx can be used only with xx=B, and ESC )
       xx, ESC * xx, ESC + xx are equivalent to ESC - xx, ESC . xx, ESC / xx, respectively.

   TIS-620
       TIS-620  is  a  Thai national standard character set and a superset of ASCII.  In the same
       fashion as the ISO 8859 series, Thai characters are mapped into 0xa1–0xfe.

   Unicode
       Unicode (ISO 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 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  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-8859-1)  a  Unicode,  la
       conversione  generale  richiede  l'uso  di  tabelle  di  conversione,  che  possono essere
       piuttosto grandi per codifiche a 16 bit.

       Note that UTF-8 is self-synchronizing: 10xxxxxx is a tail, any other byte is the head of a
       code.   Note  that the only way ASCII bytes occur in a UTF-8 stream, is as themselves.  In
       particular, there are no embedded NULs ('\0') or '/'s that form part of some larger code.

       Since ASCII, and, in particular, NUL and '/', are unchanged, the kernel  does  not  notice
       that  UTF-8  is  being  used.  It does not care at all what the bytes it is handling stand
       for.

       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>     e     Marco     Curreli
       <marcocurreli@tiscali.it>

       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⟩.