ISO/CEI 8859

ISO 8859, également appelée plus formellement ISO/CEI 8859, est une norme commune de l'ISO et de la CEI de codage des caractères sur 8 bits pour le traitement informatique du texte. La norme est divisée en parties numérotées publiées séparément, telles que ISO/CEI 8859-1, ISO/CEI 8859-2, etc., chacune pouvant être référencée de façon informelle comme norme en tant que telle. La norme comprend actuellement 16 parties.

Introduction

Alors que les 96 caractères ASCII imprimables suffisent à l'échange d'informations en anglais courant, la plupart des autres langues qui utilisent l'alphabet latin ont besoin de symboles additionnels non couverts par l'ASCII, tels que ß (allemand), å (suédois et d'autres langues scandinaves). ISO 8859 a cherché à remédier à ce problème en utilisant le huitième bit de l'octet, pour donner de la place à 128 caractères supplémentaires (ce bit était jadis utilisé pour le contrôle de l'intégrité des données (bit de parité), ou était inutilisé). Cependant, il fallait plus de caractères qu'on n'en pouvait mettre dans un jeu de caractères 8 bits, aussi plusieurs tables de correspondances ont été développées, en incluant au moins 10 tables pour couvrir uniquement l'écriture latine.

La norme ISO 8859-n n'est pas totalement identique aux codages de caractères bien connus ISO-8859-n (notez le tiret dans ISO-8859) approuvés par l'IANA pour l'utilisation sur l'Internet. Au-delà du trait d'union ajouté présent dans le nom approuvé par l'IANA, les codages diffèrent de sorte que chaque partie de la norme ISO assigne, au maximum, 191 caractères dans les étendues d'octets 32 à 126 et 160 à 255, alors que le codage de caractère correspondant approuvé par l'IANA fusionne ces tables de correspondances avec le jeu de contrôle C0 (caractères de contrôles positionnés aux octets de 0 à 31) de l'ISO/CEI 646 et le jeu de contrôle C1 (caractères de contrôles positionnés aux octets de 127 à 159) de l'ISO 6429, ce qui conduit à des tables de caractères 8 bits complètes, avec la plupart, sinon la totalité, des valeurs d'octets assignées. On utilise généralement ISO-8859-n comme nom MIME pour ces jeux de caractères. Les termes ISO 8859-n et ISO-8859-n sont souvent confondus par erreur.

Caractères

La norme ISO 8859 est conçue pour l'échange fiable d'informations, et non pour la typographie ; elle omet des symboles nécessaires pour la typographie de qualité professionnelle : ligatures optionnelles (ct, st, ff, fl, ffi, ffl...), guillemets incurvés, tirets, etc. De ce fait, les systèmes de composition avancés utilisent souvent des extensions propriétaires ou idiosyncratiques au-delà des standards ASCII et ISO 8859, ou utilisent plutôt Unicode.

En général, si un caractère ou le symbole ne faisait pas déjà partie d'un jeu de caractères informatique largement utilisé et n'était pas non plus disponible sur la plupart des claviers de machines à écrire pour une langue nationale, il n'était pas inclus. Par conséquent, les guillemets doubles directionnels («, ») utilisés pour quelques langues européennes ont été inclus, mais pas les guillemets doubles directionnels (, ) utilisés pour l'anglais et quelques autres langues.

Le français n'a pas obtenu ses ligatures  Œ, œ  parce que les francophones n'avaient pas eu suffisamment besoin d'elles pour les exiger sur leurs claviers[1] ; ni le  Ÿ, ÿ , bien que ce caractère soit utilisé dans des noms propres de famille et de lieux. Cependant, ces caractères ont été inclus plus tard dans l'ISO/CEI 8859-15, qui a introduit aussi le nouveau caractère de l'Euro . De même le néerlandais n'a pas obtenu les lettres  IJ, ij  parce que les néerlandophones s'étaient habitués à la dactylographie de ces lettres plutôt comme deux caractères.

Au début, le roumain n'a pas obtenu ses lettres  Ș, ș  et  Ț, ț , parce que ces lettres ont d'abord été unifiées avec  Ş, ş  et  Ţ, ţ  par le Consortium Unicode qui considérait les formes avec virgule souscrite comme des variantes de glyphe des formes avec cédille.

Cependant, les lettres avec virgule souscrite ont été ajoutées ultérieurement à la norme Unicode et sont aussi dans ISO/CEI 8859-16.

La plupart des codes ISO 8859 fournissent des signes diacritiques requis pour diverses langues européennes. D'autres fournissent des alphabets non-romains : grec, cyrillique, hébreu, arabe et thaï. La plupart des codages ne contiennent que des caractères avec chasse, bien que les codages hébreu et arabe contiennent aussi des caractères combinatoires. Cependant, la norme ne fournit rien pour les caractères de langues de l'est asiatique (CJC), car leur système d'écriture idéographique exige de nombreux milliers de points de code.

Bien qu'il utilise à la base des caractères latins, le vietnamien, lui aussi, n’est pas susceptible d’être représenté en 96 positions (sans utiliser des diacritiques combinatoires). Les syllabaires japonais Kana, quant à eux, le pourraient, mais, comme plusieurs autres alphabets du monde, ne sont pas codés dans le système ISO 8859.

Les parties de la norme ISO 8859

ISO 8859 est constituée à ce jour des parties suivantes :

Notes :

  • ¹ : seul le IJ/ij (Y néerlandais) manque, et peut être représenté comme IJ.
  • ² : les caractères manquants sont dans l'ISO 8859-15.
  • ³ : les caractères manquants “Ґ/ґ” ont été réintroduits en ukrainien en 1991, mais il y manque aussi le nouveau symbole (défini en 2004) de la devise monétaire ukrainienne, la hryvnia, ainsi que celui de l’euro ; la norme ISO 8859 étant désormais fermée, l’Ukraine a produit un autre jeu de caractères sur 8 bits dérivé de l’ancienne variante ukrainienne KOI8-U de l’ancienne norme soviétique (en voie d’obsolescence) mais utilise de plus en plus soit Unicode, soit le jeu de caractères Windows « ANSI cyrillique » (page de code 1251).

Chaque partie de l'ISO 8859 est conçue pour représenter des langues qui empruntent souvent l’une de l'autre, ainsi les caractères nécessaires pour chaque langue sont d’habitude accommodés par une partie seule. Cependant, il y a quelques combinaisons de caractères et langue qui ne sont pas accommodées sans les transcriptions. Les efforts ont été faits pour rendre les conversions le plus facile possible. Par exemple, l’allemand a tous ses sept caractères spéciaux aux mêmes positions dans toutes les variantes latines (1-4, 9-10, 13-16), et en beaucoup de positions les caractères diffèrent seulement par les signes diacritiques qui varient entre les séries. En particulier, les variantes 1-4 ont été conçues conjointement et ont la propriété que chaque caractère codé apparaît à une seule position donnée ou pas du tout.

Table comparative des diverses parties d’ISO 8859

Comparaison des diverses parties d’ISO 8859
Code numérique Numéro de partie d’ISO 8859
binaireOctDécHex 123456789101113141516
10100000240160A0 NBSP
10100001241161A1 ¡ĄĦĄЁʽ¡Ą"¡Ą
10100010242162A2 ¢˘˘ĸЂʼ¢¢Ē¢¢ą
10100011243163A3 £Ł£ŖЃ£££Ģ£££Ł
10100100244164A4 ¤¤¤¤Є¤¤¤Ī¤Ċ
10100101245165A5 ¥ĽĨЅ¥¥Ĩ"ċ¥"
10100110246166A6 ¦ŚĤĻІ¦¦¦Ķ¦ŠŠ
10100111247167A7 §§§§Ї§§§§§§§§
10101000250168A8 ¨¨¨¨Ј¨¨¨ĻØšš
10101001251169A9 ©ŠİŠЉ©©©Đ©©©©
10101010252170AA ªŞŞĒЊ×ªŠŖªȘ
10101011253171AB «ŤĞĢЋ«««Ŧ«««
10101100254172AC ¬ŹĴŦЌ،¬¬¬Ž¬¬Ź
10101101255173AD SHYSHY
10101110256174AE ®ŽŽЎ®®Ū®®®ź
10101111257175AF ¯ŻŻ¯Џ¯ŊÆŸ¯Ż
10110000260176B0 °°°°А°°°°°°°
10110001261177B1 ±ąħąБ±±±ą±±±
10110010262178B2 ²˛²˛В²²²ē²Ġ²Č
10110011263179B3 ³ł³ŗГ³³³ģ³ġ³ł
10110100264180B4 ´´´´Д΄´´ī"ŽŽ
10110101265181B5 µľµĩЕ΅µµĩµµ"
10110110266182B6 śĥļЖΆķ
10110111267183B7 ˇˇЗ
10111000270184B8 ¸¸¸¸ИΈ¸¸ļøžž
10111001271185B9 ¹šıšЙΉ¹¹đ¹¹č
10111010272186BA ºşşēКΊ÷ºšŗºș
10111011273187BB »ťğģЛ؛»»»ŧ»»»
10111100274188BC ¼źĵŧМΌ¼¼ž¼ŒŒ
10111101275189BD ½˝½ŊН½½½½œœ
10111110276190BE ¾žžОΎ¾¾ū¾ŸŸ
10111111277191BF ¿żżŋП؟Ώ¿ŋæ¿ż
11000000300192C0 ÀŔÀĀРΐÀĀĄÀÀÀ
11000001301193C1 ÁÁÁÁСءΑÁÁĮÁÁÁ
11000010302194C2 ÂÂÂÂТآΒÂÂĀÂÂÂ
11000011303195C3 ÃĂÃУأΓÃÃĆÃÃĂ
11000100304196C4 ÄÄÄÄФؤΔÄÄÄÄÄÄ
11000101305197C5 ÅĹĊÅХإΕÅÅÅÅÅĆ
11000110306198C6 ÆĆĈÆЦئΖÆÆĘÆÆÆ
11000111307199C7 ÇÇÇĮЧاΗÇĮĒÇÇÇ
11001000310200C8 ÈČÈČШبΘÈČČÈÈÈ
11001001311201C9 ÉÉÉÉЩةΙÉÉÉÉÉÉ
11001010312202CA ÊĘÊĘЪتΚÊĘŹÊÊÊ
11001011313203CB ËËËËЫثΛËËĖËËË
11001100314204CC ÌĚÌĖЬجΜÌĖĢÌÌÌ
11001101315205CD ÍÍÍÍЭحΝÍÍĶÍÍÍ
11001110316206CE ÎÎÎÎЮخΞÎÎĪÎÎÎ
11001111317207CF ÏĎÏĪЯدΟÏÏĻÏÏÏ
11010000320208D0 ÐĐĐаذΠĞЊŴÐÐ
11010001321209D1 ÑŃÑŅбرΡÑŅŃÑÑŃ
11010010322210D2 ÒŇÒŌвزÒŌŅÒÒÒ
11010011323211D3 ÓÓÓĶгسΣÓÓÓÓÓÓ
11010100324212D4 ÔÔÔÔдشΤÔÔŌÔÔÔ
11010101325213D5 ÕŐĠÕеصΥÕÕÕÕÕŐ
11010110326214D6 ÖÖÖÖжضΦÖÖÖÖÖÖ
11010111327215D7 ××××зطΧ×Ũ×׌
11011000330216D8 ØŘĜØиظΨØØŲØØŰ
11011001331217D9 ÙŮÙŲйعΩÙŲŁÙÙÙ
11011010332218DA ÚÚÚÚкغΪÚÚŚÚÚÚ
11011011333219DB ÛŰÛÛлΫÛÛŪÛÛÛ
11011100334220DC ÜÜÜÜмάÜÜÜÜÜÜ
11011101335221DD ÝÝŬŨнέİÝŻÝÝĘ
11011110336222DE ÞŢŜŪоήŞÞŽŶÞȚ
11011111337223DF ßßßßпίßß฿ßßßß
11100000340224E0 àŕàāрـΰאàāąààà
11100001341225E1 ááááсفαבááįááá
11100010342226E2 ââââтقβגââāâââ
11100011343227E3 ãăãуكγדããćããă
11100100344228E4 ääääфلδהääääää
11100101345229E5 åĺċåхمεוåååååć
11100110346230E6 æćĉæцنζזææęæææ
11100111347231E7 çççįчهηחçįēççç
11101000350232E8 èčèčшوθטèččèèè
11101001351233E9 ééééщىιיéééééé
11101010352234EA êęêęъيκךêęźêêê
11101011353235EB ëëëëыًλכëëėëëë
11101100354236EC ìěìėьٌμלìėģììì
11101101355237ED ííííэٍνםííķííí
11101110356238EE îîîîюَξמîîīîîî
11101111357239EF ïďïīяُοןïïļïïï
11110000360240F0 ðđđِπנğðšŵðđ
11110001361241F1 ñńñņёّρסñņńññń
11110010362242F2 òňòōђْςעòōņòòò
11110011363243F3 óóóķѓσףóóóóóó
11110100364244F4 ôôôôєτפôôōôôô
11110101365245F5 õőġõѕυץõõõõõő
11110110366246F6 ööööіφצöööööö
11110111367247F7 ÷÷÷÷їχק÷ũ÷÷ś
11111000370248F8 øřĝøјψרøøųøøű
11111001371249F9 ùůùųљωשùųłùùù
11111010372250FA úúúúњϊתúúśúúú
11111011373251FB ûűûûћϋûûūûûû
11111100374252FC üüüüќόüüüüüü
11111101375253FD ýýŭũ§ύıýżýýę
11111110376254FE þţŝūўώşþžŷþț
11111111377255FF ÿ˙˙˙џÿĸÿÿÿ

La position 0xA0 est toujours attribuée à l'espace insécable (non breaking space, NBSP) et la position 0xAD (sauf dans ISO 8859-11) au trait d’union conditionnel (soft hyphen, SHY), qui est seulement visible aux coupures de ligne. Les autres champs vides sont soit non attribués soit des caractères que le système utilisé n'est pas capable d’afficher.

Relations avec Unicode et UCS

Depuis 1991, le consortium Unicode a travaillé avec l'ISO pour développer Unicode et ISO/CEI 10646 (UCS : Universal Character Set) en tandem. Cette paire de normes a été créée pour unifier, entre autres, le répertoire de caractères ISO 8859, en associant, initialement, chaque caractère à une valeur de code sur 16 bits ; quelques valeurs de code restant non attribuées.

Progressivement, leurs modèles ont été adaptés pour permettre la mise en correspondance des caractères avec des points de code numériques abstraits plutôt qu'avec des valeurs de longueur fixe. Ce qui a permis à davantage de points de code et de méthodes de codage d'être supportées.

Unicode et l'ISO/CEI 10646 assignent actuellement de l'ordre de 100 000 caractères à un espace de code réservé qui consiste en plus d'un million de points de code (de 0x0 à 0x10FFFF en hexadécimal). Chaque caractère est noté U+nnnn, où nnnn représente une suite de 4 à 6 chiffres hexadécimaux. À titre d'exemple, le caractère A correspond au code U+0041. Unicode et l'ISO/CEI 10646 définissent également plusieurs normes de codage capables de représenter la totalité des points de code disponibles.

Les normes de codage Unicode et UCS utilisent des séquences de un à quatre codes de 8 bits (UTF-8), des séquences de un ou deux codes de 16 bits (UTF-16), ou une valeur de code de 32 bits (UTF-32 ou UCS-4). Il existe également un codage plus ancien qui utilise une valeur de 16 bits (UCS-2) mais qui n'est capable de représenter qu'un dix-septième des points de code disponibles : sur la totalité des points de code définis par Unicode, seuls ceux du BMP (Basic Multilingual Plane), c'est-à-dire ceux compris entre U+0000 et U+FFFF, sont supportés par UCS-2. Parmi ces formes de codage, seul UTF-8 présente les suites d'octets dans un ordre fixe ; les autres sont sujets au problème lié à la manière dont les plates-formes codent les suites de 16 et 32 bits (voir sur ce point l'opposition gros-boutiste et petit-boutiste). Ce problème peut être résolu grâce à des codes spéciaux ou par des indications hors bande.

Les éditions d'ISO 8859 les plus récentes expriment les caractères en termes de leurs noms Unicode/UCS et de la notation U+nnnn. Ceci permet à chaque partie d'ISO 8859 d’être un schéma de codage de caractères Unicode/UCS qui permet de coder une petite partie de l'UCS par des octets. D'ailleurs, les 256 premiers caractères en Unicode et en UCS sont identiques à ceux de ISO 8859-1.

ISO 8859 a été favorisé dans les années 1990, car il avait les avantages d'être bien établi et plus facilement implémenté au niveau des logiciels : la correspondance d'un octet à un caractère est simple et adaptée à la plupart des applications ne supportant qu’une seule langue, et où il n'y a pas de caractères combinés ou de formes variantes.

Avec la baisse du coût relatif, en ressources informatiques, de l'utilisation de plus d'un octet par caractère, les langages de programmation et les systèmes d'exploitation proposent un support natif d'Unicode en plus de leur système de page de code. Les systèmes d'exploitation supportant Unicode devenant plus répandus, ISO 8859 et les autres codages anciens ont perdu de leur popularité. Alors qu'ISO 8859 et les modèles de caractères sur un seul octet restent ancrés dans de nombreux systèmes d'exploitation, langages de programmation, systèmes de stockage de données, applications réseau, matériels d'affichage et logiciels d'application pour utilisateur final, les applications informatiques les plus modernes utilisent Unicode en interne et s'appuient, lorsque c'est nécessaire, sur des tables pour convertir de ou vers un codage plus simple.

État de développement

La norme ISO/CEI 8859 était mise à jour par le groupe ISO/CEI Joint Technical Committee 1, Subcommittee 2, Working Group 3 (ISO/CEI JTC 1/SC 2/WG 3) mais en , WG 3 s'est éteint et ses taches ont été données au groupe SC 2. La norme n'est plus mise à jour car le seul groupe de travaux actif, WG 2, doit se concentrer au développement de la norme ISO/CEI 10646.

Voir aussi

Références externes

  • Les versions PDF des propositions finales de quelques sections d'ISO/ 8859 comme soumis pour revue & publication par ISO/CEI JTC 1/SC 2/WG 3 se trouvent au site WG 3 :
    • [PDF] ISO/CEI 8859-1:1998 - 8-bit single-byte coded graphic character sets, Part 1: Latin alphabet No. 1 (draft dated February 12, 1998, published April 15, 1998)
    • [PDF] ISO/CEI 8859-4:1998 - 8-bit single-byte coded graphic character sets, Part 4: Latin alphabet No. 4 (draft dated February 12, 1998, published July 1, 1998)
    • [[PDF] http://www.open-std.org/jtc1/sc2/open/02n3329.pdf ISO/CEI 8859-7:1999] - 8-bit single-byte coded graphic character sets, Part 7: Latin/Greek alphabet (draft dated ; superseded by ISO/CEI 8859-7:2003, published )
    • [PDF] ISO/CEI 8859-10:1998 - 8-bit single-byte coded graphic character sets, Part 10: Latin alphabet No. 6 (draft dated February 12, 1998, published July 15, 1998)
    • [PDF] ISO/CEI 8859-11:1999 - 8-bit single-byte coded graphic character sets, Part 11: Latin/Thai character set (draft dated June 22, 1999; superseded by ISO/CEI 8859-11:2001, published Dec 15, 2001)
    • [PDF] ISO/CEI 8859-13:1998 - 8-bit single-byte coded graphic character sets, Part 13: Latin alphabet No. 7 (draft dated April 15, 1998, published )
    • [PDF] ISO/CEI 8859-15:1998 - 8-bit single-byte coded graphic character sets, Part 15: Latin alphabet No. 9 (draft dated August 1, 1997; superseded by ISO/CEI 8859-15:1999, published )
    • [PDF] ISO/CEI 8859-16:2000 - 8-bit single-byte coded graphic character sets, Part 16: Latin alphabet No. 10 (draft dated ; superseded by ISO/CEI 8859-16:2001, published )
  • Les normes ECMA, écrites avec l'intention de correspondance exacte aux normes de polices de charactères ISO/CEI 8859, se trouvent au :
    • Standard ECMA-94 : 8-Bit Single Byte Coded Graphic Character Sets - Latin Alphabets No. 1 to No. 4 2e édition ()
    • Standard ECMA-113 : 8-Bit Single-Byte Coded Graphic Character Sets - Latin/Cyrillic Alphabet 3e édition ()
    • Standard ECMA-114 : 8-Bit Single-Byte Coded Graphic Character Sets - Latin/Arabic Alphabet 2d édition ()
    • Standard ECMA-118 : 8-Bit Single-Byte Coded Graphic Character Sets - Latin/Greek Alphabet ()
    • Standard ECMA-121 : 8-Bit Single-Byte Coded Graphic Character Sets - Latin/Hebrew Alphabet 2e édition ()
    • Standard ECMA-128 : 8-Bit Single-Byte Coded Graphic Character Sets - Latin Alphabet No. 5 2e édition ()
    • Standard ECMA-144 : 8-Bit Single-Byte Coded Character Sets - Latin Alphabet No. 6 3e édition ()
  • Les tables de correspondance ISO/CEI 8859-1 à Unicode tables de correspondance en fichiers de texte ordinaire se trouvent au site FTP de Unicode.

Notes et références

  1. Alors que le µ y a été inclus pour les unités de mesure

Articles connexes

  • Portail de l’informatique
  • Portail de l’écriture
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.