Provided by: manpages-fr_4.13-4_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 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 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 8859
       L'ISO 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 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 8859-1  sont  aussi  les  premiers
       256 caractères d’Unicode.

       La  prise  en  charge  en  console  des autres jeux de caractères 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 :

       8859-1 (latin-1)
              Le latin-1 couvre de nombreuses langues  d'Europe  de  l'Ouest,  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 d’anciens guillemets „allemands“ étaient considérées tolérables.

       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.

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

       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 8859-10 et
              8859-13.

       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.

       8859-6 Avait été créé pour l'arabe. La table 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.

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

       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.

       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.

       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.

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

       8859-12
              Ce jeu n’existe pas.

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

       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.

       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.

       8859-16 (latin-10)
              Ce jeu 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 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-2022,  contrairement
       aux normes 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 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-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-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 2022 et ISO 4873
       Les normes ISO 2022 et 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 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 2375 International Register of Coded Character Sets. Par
       exemple,  ESC ( @  sélectionne  le  jeu ISO 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 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 8859, les caractères thaïs sont projetés
       dans l'intervalle 0xA1-0xFE.

   Unicode
       L'Unicode (ISO 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 10646 cette progression continue jusqu'à des
       codes sur 6 octets.

       Pour  la  plupart  des  textes  en ISO 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 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)

COLOPHON

       Cette  page  fait partie de la publication 5.10 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

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