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

NOM

       charsets - Normes de jeux de caractères et internationalisation

DESCRIPTION

       Cette  page de manuel présente différentes normes de jeux de caractères et la façon de les
       utiliser  sous  Linux  avant  qu’Unicode  ne  devienne  ubiquitaire.   Certains   de   ces
       renseignements  sont  encore  utiles  aux  personnes  travaillant avec des systèmes ou des
       documents anciens.

       ASCII,  GB 2312,  ISO/IEC 8859,  JIS,  KOI8-R,  KS  et  Unicode  font  partie  des  normes
       présentées.

       Un  accent  particulier  est  mis  sur  les  jeux  de caractères qui étaient véritablement
       utilisés dans les paramètres régionaux, et non  sur  la  myriade  de  jeux  de  caractères
       provenant d'autres systèmes.

   ASCII
       L'ASCII  (American  Standard  Code  For  Information Interchange) est le jeu de caractères
       7 bits original, prévu pour  l'anglais  (américain).  Il  est  aussi  connu  sous  le  nom
       US-ASCII.  Il  est  décrit  actuellement dans la norme ISO/IEC 646:1991 IRV (International
       Reference Version).

       Différentes variantes d'ASCII sont apparues, remplaçant le dollar  par  d'autres  symboles
       monétaires  et  la  ponctuation  par  des caractères accentués pour couvrir l'allemand, le
       français, l'espagnol et d'autres langues en 7 bits. Elles sont toutes obsolètes, la  glibc
       ne  gère  que  les  paramètres  régionaux  dont  le  jeu de caractères est un sur-ensemble
       d'ASCII.

       Comme Unicode, lors de l’utilisation d’UTF-8, est  compatible  avec  ASCII,  le  texte  en
       simple ASCII est toujours rendu correctement sur les systèmes modernes utilisant l’UTF-8.

   ISO/IEC 8859
       L'ISO/IEC 8859  est  une série de 15 jeux de caractères 8 bits contenant l'ASCII dans leur
       première moitié (7 bits), des caractères de contrôle non imprimables entre  les  positions
       128 et 159, et 96 symboles graphiques de largeur fixe aux emplacements 160 à 255.

       De  tous  ces  jeux,  le  plus  important  est  l'ISO/IEC 8859-1 (« alphabet latin nº 1 »,
       latin-1). Il était massivement adopté et pris en charge par  différents  systèmes  et  est
       remplacé  au  fur  et à mesure par Unicode. Les caractères d’ISO/IEC 8859-1 sont aussi les
       premiers 256 caractèresd’Unicode.

       La prise en charge en console des autres jeux de caractères  ISO/IEC 8859  est  disponible
       sous  Linux,  à  travers des utilitaires comme setfont(8), qui modifient la correspondance
       des touches du clavier, la table graphique EGA et utilisent une  projection  personnalisée
       de la table de fonte du gestionnaire de console.

       Voici une brève description des jeux de caractères 8859 :

       ISO/IEC 8859-1 (Latin-1)
              Le  latin-1  couvre de nombreuses langues d'Europe, comme l'albanais, l'anglais, le
              basque, le danois, l'espagnol, le féroïen, le galicien,  le  gallois,  l'irlandais,
              l'islandais,  l'italien,  le  norvégien,  le portugais et le suédois. L’absences de
              ligatures « IJ » et « ij » du néerlandais et « œ » du français, ainsi  que  l'absence
              des guillemets „allemands“ étaient considérées tolérables.

       ISO/IEC 8859-2 (Latin-2)
              Le  latin-2  prend  en  charge  de nombreuses langues d’Europe centrale et de l'Est
              utilisant l'alphabet latin comme l’allemand, le bosniaque, le croate, le  hongrois,
              le  polonais,  le  slovaque, le slovène et le tchèque. Remplacer les « ș » et « ț »
              roumains par « ş » et « ţ » était considéré tolérable.

       ISO/IEC 8859-3 (Latin-3)
              Le latin-3 était conçu pour couvrir l’espéranto, le gallois, le maltais et le turc,
              mais ISO/IEC 8859-9 l’a ensuite supplanté pour le turc.

       ISO/IEC 8859-4 (Latin-4)
              Le  latin-4  a  introduit  des  lettres  pour les langues de l’Europe du Nord comme
              l'estonien, le letton et le lituanien, mais il a été supplanté par  ISO/IEC 8859-10
              et ISO/IEC 8859-13.

       ISO/IEC 8859-5
              Alphabet  cyrillique prenant en charge le bulgare, le biélorusse, le macédonien, le
              russe, le serbe et (presque complètement) l’ukrainien. Il n’a jamais  été  beaucoup
              utilisé, consultez les remarques concernant KOI8-R et KOI-U ci-dessous.

       ISO/IEC 8859-6
              Avait  été créé pour l'arabe. La table ISO/IEC 8859-6 est une fonte de largeur fixe
              de formes de lettre distinctes, mais un affichage correct doit combiner les lettres
              en utilisant leurs formes initiale, centrale et finale.

       ISO/IEC 8859-7
              Avait été créé pour le grec moderne en 1987 et mis à jour en 2003.

       ISO/IEC 8859-8
              Prend  en  charge  l'hébreu  moderne sans diacritiques (signes de ponctuation). Les
              diacritiques et l'hébreu biblique dans son ensemble étaient en dehors de la  portée
              de ce jeu de caractères.

       ISO/IEC 8859-9 (Latin-5)
              Il  s'agit  d'une variante du latin-1 qui remplace les lettres islandaises rarement
              utilisées par des lettres turques.

       ISO/IEC 8859-10 (Latin-6)
              Le latin-6 ajoutait les lettres inuit (Groënland) et same (lapon) qui manquaient au
              latin-4 pour couvrir toute la zone nordique.

       ISO/IEC 8859-11
              Prend en charge l’alphabet thaï et est presque identique à la norme TIS-620.

       ISO/IEC 8859-12
              Ce jeu de caractères n’existe pas.

       ISO/IEC 8859-13 (Latin-7)
              Prend  en  charge  les  langues  des  pays  baltes,  en  particulier les caractères
              lituaniens absents du latin-4.

       ISO/IEC 8859-14 (Latin-8)
              Jeu de caractères celtique, couvrant  le  breton,  le  cornique,  le  gaélique,  le
              gallois, l’irlandais ancien et le mannois.

       ISO/IEC 8859-15 (Latin-9)
              Le  latin-9  est  similaire au latin-1 largement utilisé mais remplace les symboles
              les moins communs par le symbole euro et les lettres françaises et finlandaises qui
              manquaient au latin-1.

       ISO/IEC 8859-16 (Latin-10)
              Ce  jeu  de  caractères couvre de nombreuses langues d’Europe du Sud-Est et, ce qui
              est plus important, prend mieux en charge le roumain que le latin-2.

   KOI8-R et KOI8-U
       Le KOI8-R est un jeu de caractères non ISO  très  répandu  en  Russie  avant  Unicode.  La
       première  moitié  correspond à l'ASCII, la seconde est un jeu de caractères cyrilliques un
       peu mieux conçu que l'ISO/IEC 8859-5. Le KOI8-U, basé sur le KOI8-R, a une meilleure prise
       en  charge  de  l'ukrainien.  Aucun  de  ces  jeux  n'est  compatible avec l'ISO/IEC 2022,
       contrairement aux normes ISO/IEC ISO-8859.

       La prise en charge du KOI8-R en console est disponible sous Linux, à l’aide  d’utilitaires
       en  mode  utilisateur  qui  modifient  la  correspondance des touches du clavier, la table
       graphique EGA  et  utilisent  une  projection  personnalisée  de  la  table  de  fonte  du
       gestionnaire de console.

   GB 2312
       GB 2312  est  le  principal jeu de caractères normalisé en Chine, utilisé pour exprimer le
       chinois simplifié. Comme avec le JIS X 0208, les caractères sont projetés 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 et le GB 2312. Remarquez que l'EUC-CN est souvent appelé  GB,
       GB 2312 ou CN-GB.

   Big5
       Big5  était  un jeu de caractères populaire à Taïwan pour exprimer le chinois traditionnel
       (Big5 est à la fois un jeu de  caractères  et  un  encodage).  C'est  un  sur-ensemble  de
       l'ASCII. Les caractères non ASCII sont exprimés sur deux octets. Les octets 0xA1-0xFE sont
       utilisés en préambule pour les caractères de deux octets. Le Big5 et son extension étaient
       largement utilisés à Taïwan et Hong Kong. Il n'est pas compatible ISO/IEC 2022.

   JIS X 0208
       JIS X 0208 est un jeu de caractères normalisé au Japon. Bien qu'il y ait plusieurs jeux de
       caractères normalisés au Japon, (comme JIS X 0201, JIS X 0212 et JIS X 0213), celui-ci est
       le  plus  important.  Les  caractères sont projetés dans une matrice 94x94 de deux octets,
       dont chaque octet est dans l'intervalle 0x21-0x7E. Remarquez que JIS X 0208 est un jeu  de
       caractères,  pas un encodage. Cela signifie que JIS X 0208 lui-même n'est pas utilisé pour
       exprimer des données de texte. Il est utilisé comme composant pour construire un  encodage
       comme  EUC-JP,  Shift_JIS  et  ISO/IEC 2022-JP. EUC-JP est le plus important encodage sous
       Linux et inclut l'ASCII et le JIS X 0208. Dans l'EUC-JP, les caractères du JIS X 0208 sont
       exprimés sur deux octets, chacun étant le code JIS X 0208 plus 0x80.

   KS X 1001
       KS X 1001  est  un  jeu  de  caractères  normalisé en Corée. Comme dans le JIS X 0208, les
       caractères sont projetés dans une matrice 94x94 sur deux octets.  KS X 1001  est  utilisé,
       comme  le  JIS X 0208, comme composant pour construire un encodage comme le EUC-KR, Johab,
       et ISO/IEC 2022-KR. EUC-KR est l'encodage le plus important sous Linux et  inclut  l'ASCII
       et le KS X 1001. KS C 5601 est un ancien nom pour le KS X 1001.

   ISO/IEC 2022 et ISO/IEC 4873
       Les  normes  ISO/IEC 2022  et ISO/IEC 4873 décrivent un modèle de contrôle des fontes basé
       sur le fonctionnement du VT100. Ce modèle est (partiellement) pris en charge par le  noyau
       Linux  et  xterm(1).  Plusieurs  encodages  de  caractères  basés sur ISO/IEC 2022 ont été
       définis, en particulier pour le japonais.

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

       Le basculement entre les jeux de caractères est effectué à travers les suites  ^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 réclame le jeu Gn pour les codes dont  le  bit
       de  poids  fort est à zéro. La fonction Sn demande le jeu Gn pour les codes dont le bit de
       poids fort est à un. La fonction SSn réclame le  jeu  Gn  (n=2  ou 3)  pour  le  caractère
       suivant uniquement (quelle que soit la valeur du bit de poids fort).

       Un  jeu  de  94 caractères  est  désigné  comme  jeu  Gn par une suite ESC ( xx (pour G0),
       ESC ) xx (pour G1), ESC * xx (pour G2), ESC + xx (pour G3), où xx est un  symbole  ou  une
       paire de symboles de la norme ISO/IEC 2375 International Register of Coded Character Sets.
       Par exemple, ESC ( @ sélectionne le jeu de caractère ISO/IEC 646 en tant que  G0,  ESC ( A
       sélectionne  le jeu normalisé au Royaume-Uni (avec la livre sterling à la place du dièse),
       ESC ( B sélectionne l'ASCII, ESC ( M sélectionne un jeu de caractères africain,  ESC ( ! A
       sélectionne les caractères cubains, etc.

       Un  jeu  de  96 caractères  est  désigné  comme  jeu  Gn par une suite ESC - xx (pour G1),
       ESC . xx (pour G2) ou ESC / xx (pour G3).  Par  exemple,  ESC - G  sélectionne  l'alphabet
       hébreu comme G1.

       Un  jeu  de  caractères  multioctets  est  désigné  comme jeu Gn par une suite ESC $ xx ou
       ESC $ ( xx (pour G0), ESC $ ) xx (pour G1), ESC $ * xx (pour G2),  ESC $ + xx  (pour  G3).
       Par  exemple,  ESC $ ( C  sélectionne  les  caractères  coréens  pour le jeu G0. Le jeu de
       caractères  japonais  sélectionné  par  ESC $ B  dispose  d'une   version   plus   récente
       sélectionnée par ESC & @ ESC $ B.

       L'ISO/IEC 4873  réclame  une  utilisation précise des jeux de caractères, dans laquelle G0
       est fixé (toujours l'ASCII), ainsi seuls G1, G2 et G3 peuvent être invoqués pour les codes
       avec  un  bit  de poids fort à 1. En particulier, ^N et ^O ne sont plus utilisés, ESC ( xx
       peut seulement être utilisé avec xx=B, et ESC ) xx, ESC * xx, ESC + xx sont équivalents  à
       ESC - xx, ESC . xx, ESC / xx, respectivement.

   TIS-620
       Le  TIS-620  est  un  jeu  de  caractère normalisé en Thaïlande, et est un sur-ensemble de
       l'ASCII. De la même façon que  la  série  des  ISO/IEC 8859,  les  caractères  thaïs  sont
       projetés dans l'intervalle 0xA1-0xFE.

   Unicode
       L'Unicode  (ISO/IEC 10646)  est  une  norme destinée à représenter sans ambiguïté tous les
       signes écrits de toutes les langues humaines connues.  La  structure  de  l'Unicode  offre
       21 bits  pour  chaque  caractère.  Comme les ordinateurs n'ont pas d'entiers avec 21 bits,
       Unicode est habituellement codé en interne  sur  32 bits,  ou  par  des  séries  d'entiers
       16 bits  (UTF-16)  (ne  nécessitant deux entiers 16 bits que pour des caractères rares) ou
       par une série d'octets 8 bits (UTF-8).

       Linux représente l'Unicode en utilisant le format de transfert sur 8 bits (UTF-8). L'UTF-8
       est  un encodage à 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.

       Représentons  par  0, 1 ou x des bits à 0, 1 ou quelconque. Un octet 0xxxxxxx correspond à
       l'Unicode 00000000 0xxxxxxx qui indique le même symbole que l'ASCII 0xxxxxxx. Ainsi, ASCII
       n'est  pas  modifié  par  UTF-8,  et les gens utilisant uniquement l'ASCII ne remarqueront
       aucun changement : ni dans l’encodage, ni dans les tailles de fichiers.

       Un octet 110xxxxx représente le début d'un code sur  2 octets,  et  110xxxxx 10yyyyyy  est
       assemblé  en  00000xxx xxyyyyyy.  Un  octet  1110xxxx  correspond  au  début d'un code sur
       3 octets, et 1110xxxx 10yyyyyy 10zzzzzz sont assemblés en xxxxyyyy yyzzzzzz. Quand l'UTF-8
       est utilisé pour encoder les 31 bits de l'ISO/IEC 10646 cette progression continue jusqu'à
       des codes sur 6 octets.

       Pour la plupart des textes en ISO/IEC 8859, cela signifie que les caractères en dehors  de
       l'ASCII  sont  désormais  encodés  sur  deux  octets.  Cela  tend à allonger la taille des
       fichiers textes ordinaires de un à deux pourcents. Pour le russe ou le grec, la taille des
       fichiers textes ordinaires est généralement doublée, car la plupart des caractères sont en
       dehors de l'ASCII. Pour les utilisateurs japonais, cela signifie que les codes sur 16 bits
       couramment  employés  prendront  désormais  3 octets.  Des conversions algorithmiques sont
       possibles  depuis  certains  jeux  de  caractères  (en  particulier  ISO/IEC 8859-1)  vers
       l'Unicode,  mais  une conversion générique nécessite l'utilisation de tables de conversion
       pouvant être assez larges pour des codes sur 16 bits.

       Remarquez que l'UTF-8 se synchronise automatiquement : 10xxxxxx est la fin d'un  code,  et
       tout  autre  octet est un début de code. Notez également que les octets ASCII dans un flux
       UTF-8 ne peuvent que représenter les caractères ASCII correspondants.  En  particulier  il
       n'y a pas d’octet NULL (« \0 ») ou « / » faisant partie d'un code plus grand.

       Comme  l'ASCII,  et,  en particulier, l’octet NULL et « / », ne sont modifiés, le noyau ne
       remarque pas que l'UTF-8 est utilisé. Il n'a pas à se préoccuper de la  signification  des
       octets qu'il manipule.

       La  gestion des flux de données Unicode est généralement effectuée à travers des tables de
       « sous-fontes » correspondant à un sous-ensemble des caractères Unicode.  En  interne,  le
       noyau  utilise  l'Unicode  pour  décrire  les  sous-fontes chargées en mémoire vidéo. Cela
       signifie que pour une console Linux en mode UTF-8, un jeu de caractères avec  512 symboles
       différents  peut  être  utilisé.  Ce  n'est  pas  assez pour le japonais, le chinois ou le
       coréen, mais c'est généralement suffisant pour toutes les autres utilisations.

VOIR AUSSI

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

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier   <barbier@debian.org>,   David   Prévot  <david@tilapin.org>  et  Grégoire  Scano
       <gregoire.scano@malloc.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.