ISO/CEI 8859

norme ISO et CEI

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ériqueNuméro de partie d’ISO 8859
BinaireOctDécHex123456789101113141516
1010 0000240160A0NBSP
1010 0001241161A1¡ĄĦĄЁ¡Ą¡Ą
1010 0010242162A2¢˘˘ĸЂ¢¢Ē¢¢ą
1010 0011243163A3£Ł£ŖЃ£££Ģ£££Ł
1010 0100244164A4¤¤¤¤Є¤¤¤Ī¤Ċ
1010 0101245165A5¥ĽĨЅ¥¥Ĩċ¥
1010 0110246166A6¦ŚĤĻІ¦¦¦Ķ¦ŠŠ
1010 0111247167A7§§§§Ї§§§§§§§§
1010 1000250168A8¨¨¨¨Ј¨¨¨ĻØšš
1010 1001251169A9©ŠİŠЉ©©©Đ©©©©
1010 1010252170AAªŞŞĒЊͺתŠŖªȘ
1010 1011253171AB«ŤĞĢЋ«««Ŧ«««
1010 1100254172AC¬ŹĴŦЌ،¬¬¬Ž¬¬Ź
1010 1101255173ADSHYSHY
1010 1110256174AE®ŽŽЎ®®Ū®®®ź
1010 1111257175AF¯ŻŻ¯Џ¯¯ŊÆŸ¯Ż
1011 0000260176B0°°°°А°°°°°°°
1011 0001261177B1±ąħąБ±±±ą±±±
1011 0010262178B2²˛²˛В²²²ē²Ġ²Č
1011 0011263179B3³ł³ŗГ³³³ģ³ġ³ł
1011 0100264180B4´´´´Д΄´´īŽŽ
1011 0101265181B5µľµĩЕ΅µµĩµµ"
1011 0110266182B6śĥļЖΆķ
1011 0111267183B7·ˇ·ˇЗ·······
1011 1000270184B8¸¸¸¸ИΈ¸¸ļøžž
1011 1001271185B9¹šıšЙΉ¹¹đ¹¹č
1011 1010272186BAºşşēКΊ÷ºšŗºș
1011 1011273187BB»ťğģЛ؛»»»ŧ»»»
1011 1100274188BC¼źĵŧМΌ¼¼ž¼ŒŒ
1011 1101275189BD½˝½ŊН½½½½œœ
1011 1110276190BE¾žžОΎ¾¾ū¾ŸŸ
1011 1111277191BF¿żżŋП؟Ώ¿ŋæ¿ż
1100 0000300192C0ÀŔÀĀРΐÀĀĄÀÀÀ
1100 0001301193C1ÁÁÁÁСءΑÁÁĮÁÁÁ
1100 0010302194C2ÂÂÂÂТآΒÂÂĀÂÂÂ
1100 0011303195C3ÃĂÃУأΓÃÃĆÃÃĂ
1100 0100304196C4ÄÄÄÄФؤΔÄÄÄÄÄÄ
1100 0101305197C5ÅĹĊÅХإΕÅÅÅÅÅĆ
1100 0110306198C6ÆĆĈÆЦئΖÆÆĘÆÆÆ
1100 0111307199C7ÇÇÇĮЧاΗÇĮĒÇÇÇ
1100 1000310200C8ÈČÈČШبΘÈČČÈÈÈ
1100 1001311201C9ÉÉÉÉЩةΙÉÉÉÉÉÉ
1100 1010312202CAÊĘÊĘЪتΚÊĘŹÊÊÊ
1100 1011313203CBËËËËЫثΛËËĖËËË
1100 1100314204CCÌĚÌĖЬجΜÌĖĢÌÌÌ
1100 1101315205CDÍÍÍÍЭحΝÍÍĶÍÍÍ
1100 1110316206CEÎÎÎÎЮخΞÎÎĪÎÎÎ
1100 1111317207CFÏĎÏĪЯدΟÏÏĻÏÏÏ
1101 0000320208D0ÐĐĐаذΠĞЊŴÐÐ
1101 0001321209D1ÑŃÑŅбرΡÑŅŃÑÑŃ
1101 0010322210D2ÒŇÒŌвزÒŌŅÒÒÒ
1101 0011323211D3ÓÓÓĶгسΣÓÓÓÓÓÓ
1101 0100324212D4ÔÔÔÔдشΤÔÔŌÔÔÔ
1101 0101325213D5ÕŐĠÕеصΥÕÕÕÕÕŐ
1101 0110326214D6ÖÖÖÖжضΦÖÖÖÖÖÖ
1101 0111327215D7××××зطΧ×Ũ×׌
1101 1000330216D8ØŘĜØиظΨØØŲØØŰ
1101 1001331217D9ÙŮÙŲйعΩÙŲŁÙÙÙ
1101 1010332218DAÚÚÚÚкغΪÚÚŚÚÚÚ
1101 1011333219DBÛŰÛÛлΫÛÛŪÛÛÛ
1101 1100334220DCÜÜÜÜмάÜÜÜÜÜÜ
1101 1101335221DDÝÝŬŨнέİÝŻÝÝĘ
1101 1110336222DEÞŢŜŪоήŞÞŽŶÞȚ
1101 1111337223DFßßßßпίßß฿ßßßß
1110 0000340224E0àŕàāрـΰאàāąààà
1110 0001341225E1ááááсفαבááįááá
1110 0010342226E2ââââтقβגââāâââ
1110 0011343227E3ãăãуكγדããćããă
1110 0100344228E4ääääфلδהääääää
1110 0101345229E5åĺċåхمεוåååååć
1110 0110346230E6æćĉæцنζזææęæææ
1110 0111347231E7çççįчهηחçįēççç
1110 1000350232E8èčèčшوθטèččèèè
1110 1001351233E9ééééщىιיéééééé
1110 1010352234EAêęêęъيκךêęźêêê
1110 1011353235EBëëëëыًλכëëėëëë
1110 1100354236ECìěìėьٌμלìėģììì
1110 1101355237EDííííэٍνםííķííí
1110 1110356238EEîîîîюَξמîîīîîî
1110 1111357239EFïďïīяُοןïïļïïï
1111 0000360240F0ðđđِπנğðšŵðđ
1111 0001361241F1ñńñņёّρסñņńññń
1111 0010362242F2òňòōђْςעòōņòòò
1111 0011363243F3óóóķѓσףóóóóóó
1111 0100364244F4ôôôôєτפôôōôôô
1111 0101365245F5õőġõѕυץõõõõõő
1111 0110366246F6ööööіφצöööööö
1111 0111367247F7÷÷÷÷їχק÷ũ÷÷ś
1111 1000370248F8øřĝøјψרøøųøøű
1111 1001371249F9ùůùųљωשùųłùùù
1111 1010372250FAúúúúњϊתúúśúúú
1111 1011373251FBûűûûћϋûûūûûû
1111 1100374252FCüüüüќόüüüüüü
1111 1101375253FDýýŭũ§ύıýżýýę
1111 1110376254FEþţŝūўώşþžŷþț
1111 1111377255FFÿ˙˙˙џÿĸÿÿÿ

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. De nouveaux caractères ont ainsi été ajoutés parmi les points de code disponibles (trois affichables [partie 7 version 2003], et deux non affichables [partie 8 version 1999, LRM en 0xFD et RLM en 0xFE pour les marques gauche-à-droite et droite-à-gauche respectives]).

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

Articles connexes

🔥 Top keywords: Wikipédia:Accueil principalListe de sondages sur les élections législatives françaises de 2024Spécial:RechercheJordan BardellaChampionnat d'Europe de football 2024N'Golo KantéJodie DevosKylian MbappéÉlections législatives françaises de 2024Marcus ThuramLe Jardin des Finzi-Contini (film)Maria Schneider (actrice)Cookie (informatique)Championnat d'Europe de footballNouveau Front populaireKevin DansoAntoine GriezmannÉric CiottiChampionnat d'Europe de football 2020Dominique SandaMike MaignanWilliam SalibaLionel JospinÉlections législatives de 2024 dans l'EssonneFront populaire (France)Françoise HardyÉlections législatives de 2024 à ParisRassemblement nationalJean-Luc MélenchonFichier:Cleopatra poster.jpgOlivier GiroudSébastien ChenuDidier DeschampsLa Chronique des BridgertonÉlections législatives de 2024 dans les YvelinesLilian ThuramListe de partis politiques en FranceAnne SinclairGabriel Attal