Provided by: manpages-fr_4.26.0-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 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.

Pages du manuel de Linux 6.9.1                    15 juin 2024                                       charsets(7)