Provided by: manpages-fr_3.32d0.2p4-1_all bug

NOM

       charsets   -  Jeux  de  caracteres  et  internationalisation  pour  les
       programmeurs

DESCRIPTION

       Linux est un systeme d'exploitation  international.  Plusieurs  de  ses
       utilitaires  et  de  ses  gestionnaires  de peripheriques (y compris le
       gestionnaire de console) prennent en  charge  les  jeux  de  caracteres
       multilingues contenant les lettres de l'alphabet latin avec des accents
       et des ligatures, et des alphabets non-latin complets comme le grec, le
       cyrillique, l'arabe ou l'hebreu.

       Cette  page  de  manuel presente le point de vue du programmeur sur les
       differents jeux de caracteres, et comment ils s'organisent sous  Linux.
       Les  standards  presentes  comprennent  l'ASCII, l'ISO 8859, le KOI8-R,
       l'Unicode, l'ISO 2022 et l'ISO 4873. Un accent particulier est mis  sur
       les  jeux  de  caracteres  veritablement  utilises  dans les parametres
       regionaux, et non sur  la  myriade  de  jeux  de  caracteres  provenant
       d'autres systemes.

       Une  liste complete des jeux de caracteres utilises dans les parametres
       regionaux officiels de la glibc est : ISO-8859-{1,2,3,5,6,7,8,9,13,15},
       CP1251,  UTF-8, EUC-{KR,JP,TW}, KOI8-{R,U}, GB2312, GB18030, GBK, BIG5,
       BIG5-HKSCS et TIS-620, sans ordre particulier.  Le  roumain  a  bascule
       vers ISO-8859-16.

   ASCII
       L'ASCII (American Standard Code For Information Interchange) est le jeu
       de caracteres 7 bits original, prevu pour l'anglais (americain). Il est
       decrit actuellement dans le standard ECMA-6.

       Differentes  variantes  d'ASCII  existent, qui remplacent le dollar par
       d'autres symboles monetaires  et  la  ponctuation  par  des  caracteres
       accentues  pour couvrir l'allemand, le francais, l'espagnol et d'autres
       langues en 7 bits. Elles sont toutes obsoletes, la glibc  ne  gere  que
       les  parametres  regionaux dont le jeu de caracteres est un surensemble
       d'ASCII (ces jeux de caracteres sont aussi appeles ISO-646,  un  cousin
       proche d'ASCII qui a permis de remplacer ces caracteres).

       Comme  Linux  est ecrit pour du materiel concu aux Etats-Unis, il prend
       en charge l'ASCII de maniere native.

   ISO 8859
       L'ISO 8859 est une serie de 10 jeux  de  caracteres  8 bits,  contenant
       l'ASCII  US  dans  leur  premiere  moitie  (7 bits),  des caracteres de
       controle non imprimables entre les positions 128 et 159, et 96 symboles
       graphiques de largeur fixe aux emplacements 160 a 255.

       De  tous ces jeux, le plus important est l'ISO 8859-1 (latin-1). Il est
       pris en charge de maniere native par le gestionnaire de console  Linux,
       assez  bien  pris en charge par X11R6, et c'est le jeu de caracteres de
       base pour l'HTML.

       La prise en charge console des  autres  jeux  de  caracteres  8859  est
       disponible  sous Linux, a travers des utilitaires comme setfont(8), qui
       modifient la correspondance des touches du clavier, la table  graphique
       EGA,  et  utilisent  une  projection  personnalisee  de  la  police  du
       gestionnaire de console.

       Voici une breve description des jeux de caracteres 8859 :

       8859-1 (latin-1)
              Le latin-1 couvre la plupart des langues  d'Europe  de  l'Ouest,
              comme  l'albanais, l'allemand, l'anglais, le catalan, le danois,
              l'espagnol, le ferovingien, le finnois, le francais, le gallois,
              le   neerlandais,   l'irlandais,   l'islandais,   l'italien,  le
              norvegien, le portugais et le suedois.  Le  manque  de  ligature
              entre  les << ij >> neerlandais, entre les << oe >> francais, et
              l'absence des anciens guillemets ,,allemands" est tolerable.

       8859-2 (latin-2)
              Le latin-2 contient la plupart des langues  slaves  d'Europe  de
              l'Est  utilisant  l'alphabet latin : allemand, croate, hongrois,
              polonais, roumain, slovaque, slovene et tcheque.

       8859-3 (latin-3)
              Le latin-3 est utilise pour les textes  en  esperanto,  gallois,
              maltais et turc.

       8859-4 (latin-4)
              Le   latin-4   introduit  des  lettres  pour  l'estonien  et  le
              lituanien.  Il  est  presque  obsolete,  remplace  par   8859-10
              (latin-6) et 8859-13 (latin-7).

       8859-5 L'alphabet   cyrillique  est  utilise  en  bulgare,  bielorusse,
              macedonien, russe, serbe et ukrainien. Les Ukrainiens prononcent
              la  lettre  << ghe >> fermee, comme << heh >> et auraient besoin
              d'un accent pour distinguer le << ghe >> correct. Consultez  les
              remarques concernant le KOI8-R ci-dessous.

       8859-6 Prend  en  charge  l'arabe.  La  table  8859-6 est une police de
              caracteres de largeur  fixe,  mais  un  affichage  correct  doit
              combiner   les  lettres  en  utilisant  leurs  formes  initiale,
              centrale et finale.

       8859-7 Prend en charge le grec moderne.

       8859-8 Prend en charge l'hebreu sans niqqud (diacritiques). Les  niqqud
              et  l'hebreu  biblique  dans  son  ensemble sont en dehors de la
              portee  de  ce  jeu  de  caracteres ;  sous  Linux,  UTF-8   est
              recommande pour cela.

       8859-9 (latin-5)
              Il  s'agit  d'une  variante  du latin-1 qui remplace les lettres
              islandaises rarement utilisees par des lettres turques.

       8859-10 (latin-6)
              Le latin 6 ajoute les dernieres  lettres  inuit  (Groenland)  et
              sami  (lappon) qui manquaient dans le latin 4 pour couvrir toute
              la zone nordique. La RFC 1345 indique un latin 6 preliminaire et
              different.  Le sami necessite en realite plus d'accents que ceux
              proposes.

       8859-11
              Ceci n'existe qu'en tant  que  proposition  rejetee.  Il  s'agit
              d'une  version  identique au TIS-620, utilise sous Linux pour le
              thai.

       8859-12
              Ce jeu  n'existe  pas.  On  a  propose  de  l'utiliser  pour  le
              vietnamien,  mais  il  ne tient pas dans les 96 caracteres (sans
              combinaisons) offerts par l'ISO 8859.  L'UTF-8  est  le  jeu  de
              caractere prefere pour l'utilisation du vietnamien sous Linux.

       8859-13 (latin-7)
              Prend  en charge les langues des pays baltes, en particulier les
              caracteres lituaniens absents du latin-4.

       8859-14 (latin-8)
              Jeu de caracteres celtique, couvrant le gaelique et le  gallois.
              Ce   jeu   contient  les  caracteres  pointes  necessaires  pour
              l'irlandais ancien.

       8859-15 (latin-9)
              Dans ce jeu  se  trouvent  le  symbole  euro  et  les  ligatures
              francaises qui manquaient dans le latin-1.

       8859-16 (latin-10)
              Ce jeu recouvre la plupart des langues du 8859-2, et prend mieux
              en charge le roumain.

   KOI8-R
       Le KOI8-R est un jeu de caracteres non-ISO tres repandu en  Russie.  La
       premiere  moitie  correspond  a  l'ASCII  US,  la seconde est un jeu de
       caractere cyrillique un peu mieux concu que l'ISO 8859-5. Le KOI8-U est
       un  jeu commun, base sur le KOI8-R, qui a une meilleure prise en charge
       de l'ukrainien. Aucun de ces jeux  n'est  compatible  avec  l'ISO-2022,
       contrairement a l'ISO-8859.

       La  prise  en  charge  console  du  KOI8-R est disponible sous Linux, a
       travers  des   utilitaires   comme   setfont(8),   qui   modifient   la
       correspondance  des  touches  du  clavier,  la  table graphique EGA, et
       utilisent une projection personnalisee de la police du gestionnaire  de
       console.

   JIS X 0208
       JIS X 0208 est un jeu de caracteres standard japonais. Bien qu'il y ait
       plusieurs jeux de  caracteres  standard  japonais,  (comme  JIS X 0201,
       JIS X 0212,  et  JIS X 0213),  celui-ci  est  le  plus  important.  Les
       caracteres sont projetes dans une matrice de deux  octets  94x94,  dont
       chaque  octet est dans l'intervalle 0x21-0x7E. Notez que JIS X 0208 est
       un jeu de caracteres, pas un encodage.  Ceci  signifie  que  JIS X 0208
       lui-meme  n'est  pas utilise pour exprimer des donnees de texte. Il est
       utilise comme composant  pour  construire  un  encodage  comme  EUC-JP,
       Shift_JIS,  et  ISO-2022-JP. EUC-JP est le plus important encodage sous
       Linux et inclut  l'ASCII  US  et  le  JIS X 0208.  Dans  l'EUC-JP,  les
       caracteres du JIS X 0208 sont exprimes sur deux octets, chacun etant le
       code JIS X 0208 plus 0x80.

   KS X 1001
       KS X 1001 est un jeu de  caracteres  standard  coreen.  Comme  dans  le
       JIS X 0208,  les  caracteres  sont  projetes dans une matrice 94x94 sur
       deux  octets.  KS X 1001  est  utilise,  comme  le  JIS X 0208,   comme
       composant  pour  construire  un  encodage  comme  le  EUC-KR, Johab, et
       ISO-2022-KR. EUC-KR est l'encodage le  plus  important  sous  Linux  et
       inclut  l'ASCII US et le KS X 1001. KS C 5601 est un ancien nom pour le
       KS X 1001.

   GB 2312
       GB 2312 est le  principal  jeu  de  caracteres  chinois,  utilise  pour
       exprimer le chinois simplifie. Comme avec le JIS X 0208, les caracteres
       sont projetes dans une matrice 94x94 sur deux  octets  pour  construire
       l'EUC-CN.  Celui-ci  est  l'encodage  le  plus  important sous Linux et
       inclut l'ASCII US et le GB 2312. Notez que l'EUC-CN est souvent  appele
       GB, GB 2312 ou CN-GB.

   Big5
       Big5  est  un  jeu  de  caracteres  populaire a Taiwan pour exprimer le
       chinois traditionnel (Big5 est a la fois un jeu  de  caracteres  et  un
       encodage).  C'est  un  surensemble de l'ASCII. Les caracteres non ASCII
       sont exprimes sur deux octets. Les octets 0xA1-0xFE  sont  utilises  en
       preambule  pour les caracteres de deux octets. Le Big5 et son extension
       sont largement utilises a Taiwan et Hong-Kong. Il n'est pas  compatible
       ISO 2022.

   TIS-620
       Le  TIS-620 est un jeu de caractere standard thai, et un surensemble de
       l'ASCII US. Comme la serie des  ISO 8859,  les  caracteres  thais  sont
       projetes  dans  l'intervalle  0xA1-0xFE.  Le TIS-620 est le seul jeu de
       caracteres couramment utilise sous  Linux,  hormis  l'UTF-8,  avec  des
       caracteres combines.

   UNICODE
       L'Unicode  (ISO 10646)  est  un  standard  destine  a  representer sans
       ambiguite tous  les  signes  ecrits  de  toutes  les  langues  humaines
       connues. La structure de l'Unicode offre 21 bits pour chaque caractere.
       Comme les ordinateurs n'ont  pas  d'entiers  avec  21 bits,  l'encodage
       Unicode interne est sur 32 bits, et en externe sur des series d'entiers
       16 bits (UTF-16) (qui ne necessite deux entiers 16 bits  que  pour  des
       caracteres   rares)   ou   une   serie  d'octets  8 bits  (UTF-8).  Des
       informations  supplementaires  sur  l'Unicode  sont   disponibles   sur
       <http://www.unicode.org>.

       Linux  represente  l'Unicode  en  utilisant  le format de transfert sur
       8 bits (UTF-8). L'UTF-8 est un codage a longueur variable.  Il  utilise
       un  octet  pour  coder  7 bits,  2 octets  pour  11 bits, 3 octets pour
       16 bits, 4 octets pour 21 bits, 5 octets pour  26 bits,  6 octets  pour
       31 bits.

       Representons   par  0,1,x  des  bits  a  0,  a  1,  ou  quelconque.  Un
       octet 0xxxxxxx correspond a l'Unicode 00000000 0xxxxxxx qui indique  le
       meme  symbole  que l'ASCII 0xxxxxxx. Ainsi, ASCII n'est pas modifie par
       UTF-8, et les gens utilisant uniquement l'ASCII ne  remarqueront  aucun
       changement : ni dans le codage, ni dans les tailles de fichiers.

       Un  octet  110xxxxx  represente  le  debut  d'un  code sur 2 octets, et
       110xxxxx 10yyyyyy est assemble en 00000xxx xxyyyyyy. Un octet  1110xxxx
       correspond     au     debut     d'un     code    sur    3 octets,    et
       1110xxxx 10yyyyyy 10zzzzzz sont assembles en  xxxxyyyy yyzzzzzz.  Quand
       l'UTF-8  est  utilise  pour  coder  les  31 bits  de  l'ISO 10646 cette
       progression continue jusqu'a des codes sur 6 octets.

       Pour les utilisateurs de l'ISO-8859, ceci signifie que  les  caracteres
       avec  le  bit  de  poids fort a 1 sont desormais codes sur deux octets.
       Ceci tend a allonger  la  taille  des  fichiers  textes  ordinaires  de
       quelques  pour  cent  (N.d.T. : il n'y a pas de problemes de conversion
       neanmoins,  car  les  symboles  Unicode  correspondant  aux  caracteres
       ISO-8859  conservent  les memes valeurs, etendues avec 8 bits a zero en
       tete). Pour le  russe  ou  le  grec,  la  taille  des  fichiers  textes
       ordinaires  est generalement doublee car la plupart des caracteres sont
       en dehors de l'ASCII. Pour les utilisateurs japonais, cela signifie que
       les codes sur 16 bits couramment employes prendront desormais 3 octets.
       Des conversions algorithmiques sont possibles depuis certains  jeux  de
       caracteres   (en   particulier   ISO-8859-1)  vers  l'UTF-8,  mais  une
       conversion generique necessite l'utilisation de tables  de  conversion,
       qui peuvent etre assez larges pour des codes sur 16 bits.

       Remarquez  que l'UTF-8 se synchronise automatiquement : 10xxxxxx est le
       corps ou la fin d'un code, et tout autre octet est un  debut  de  code.
       Notez  egalement que les octets ASCII dans un flux UTF-8 ne peuvent que
       representer les caracteres ASCII correspondants. En particulier il  n'y
       a pas de caracteres nuls (<< \0 >>) ou << / >> faisant partie d'un code
       plus grand.

       Comme l'ASCII, et en particulier NUL et << / >>, n'est pas modifie,  le
       noyau  ne  remarque  pas  que  l'UTF-8  est  utilise.  Il  n'a pas a se
       preoccuper de la signification des octets qu'il manipule.

       La gestion des flux de donnees Unicode  est  generalement  effectuee  a
       travers   des   tables   de   << sous-fontes >>   correspondant   a  un
       sous-ensemble des caracteres Unicode.  En  interne,  le  noyau  utilise
       l'Unicode  pour decrire les sous-fontes chargees en memoire video. Ceci
       signifie qu'en mode UTF-8, on peut utiliser un jeu de  caracteres  avec
       512 symboles  differents.  Ce  n'est  pas  assez  pour  le japonais, le
       chinois ou le coreen, mais c'est generalement suffisant pour toutes les
       autres utilisations.

       A  l'heure  actuelle,  le pilote de la console ne permet pas d'utiliser
       les caracteres combinants. Les langues  thai,  sioux,  et  toute  autre
       necessitant des caracteres combinants ne peuvent pas etre utilisees sur
       la console.

   ISO 2022 et ISO 4873
       Les standards ISO 2022 et 4873 decrivent  un  modele  de  controle  des
       fontes   base   sur   le   fonctionnement   du  VT100.  Ce  modele  est
       (partiellement) pris en charge par le noyau Linux et xterm(1).  Il  est
       assez populaire au Japon et en Coree.

       Il  existe  4 jeux  de  caracteres graphiques, nommes G0, G1, G2 et G3,
       l'un d'entre eux est utilise comme jeu de caracteres en cours pour  les
       codes  avec  le  bit de poids fort a 0 (par defaut G0), et un autre est
       utilise pour les codes avec le bit de poids fort a 1 (initialement G1).
       Chaque  ensemble  dispose  de  94 ou 96 caracteres, et est constitue de
       caracteres sur 7 bits.  Ce  modele  utilise  soit  les  codes  040-0177
       (041-0176)  soit  les  codes  0240-0377  (0241-0376). G0 a toujours une
       taille de 94 caracteres et utilise les codes 041-0176.

       Le basculement entre les jeux de caracteres est effectue a travers  les
       sequences ^N (SO ou LS1), ^O (SI ou LS0), ESC n (LS2), ESC o (LS3), ESC
       N (SS2), ESC O (SS3), ESC ~ (LS1R), ESC }  (LS2R),  ESC  |  (LS3R).  La
       fonction LSn reclame le jeu Gn pour les codes dont le bit de poids fort
       est a zero. La fonction Sn demande le jeu Gn pour les codes dont le bit
       de  poids  fort  est a un. La fonction SSn reclame le jeu Gn (n=2 ou 3)
       pour le caractere suivant uniquement (quelle que soit la valeur du  bit
       de poids fort).

       Un jeu de 94 caracteres est designe comme jeu Gn par une sequence ESC (
       xx (pour G0), ESC ) xx (pour G1), ESC * xx (pour G2), ESC  +  xx  (pour
       G3),  ou  xx  est  un  symbole,  ou  une  paire de symboles du standard
       ISO 2375 International Register of Coded Character Sets.  Par  exemple,
       ESC  ( @ selectionne le jeu ISO 646 en tant que G0, ESC ( A selectionne
       le jeu standard britannique (avec la  livre  sterling  a  la  place  du
       diese),  ESC  (  B  selectionne  l'ASCII, ESC ( M selectionne un jeu de
       caracteres africain, ESC ( ! A selectionne les caracteres cubains, etc.

       Un jeu de 96 caracteres est designe comme jeu Gn par une sequence ESC -
       xx  (pour  G1),  ESC . xx (pour G2) ou ESC / xx (pour G3). Par exemple,
       ESC - G selectionne l'alphabet hebreu comme G1.

       Un jeu de caracteres multioctets est  designe  comme  jeu  Gn  par  une
       sequence  ESC $ xx ou ESC $ ( xx (pour G0), ESC $ ) xx (pour G1), ESC $
       * xx (pour G2), ESC  $  +  xx  (pour  G3).  Par  exemple,  ESC  $  (  C
       selectionne les caracteres coreens pour le jeu G0. Le jeu de caracteres
       japonais selectionne par ESC $ B dispose  d'une  version  plus  recente
       selectionnee par ESC & @ ESC $ B.

       L'ISO 4873 reclame une utilisation precise des jeux de caracteres, dans
       laquelle G0 est fixe (toujours l'ASCII),  ainsi  seuls  G1,  G2  et  G3
       peuvent  etre invoques pour les codes avec un bit de poids fort a 1. En
       particulier, ^N et ^O ne sont plus utilises, ESC (  xx  peut  seulement
       etre  utilise  avec  xx=B,  et  ESC  )  xx,  ESC  *  xx,  ESC + xx sont
       equivalents a ESC - xx, ESC . xx, ESC / xx, respectivement.

VOIR AUSSI

       console(4),     console_codes(4),      console_ioctl(4),      ascii(7),
       iso_8859-1(7), unicode(7), utf-8(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).    Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.