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 claviersAlors que le µ y a été inclus pour les unités de mesure ; 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 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 : ISO/CEI 8859-1 (latin-1 ou européen occidental) — probablement la partie la plus largement utilisée de ISO 8859, couvrant la plupart des langues européennes occidentales : l'allemand, l'anglais, le basque, le catalan, le danois, l'écossais, l'espagnol, le féroïen, le finnois (partiellement²), le français (partiellement, il manque notamment l’e dans l'o œ et le Ÿ²), l'islandais, l'irlandais, l'italien, le néerlandais (partiellement¹), le norvégien, le portugais, le rhéto-roman et le suédois, certaines langues européennes sud-orientales (l'albanais), ainsi que des langues africaines (l'afrikaans et le swahili). Le symbole de l'euro et la capitale Ÿ, qui manquaient, sont dans la version révisée ISO/CEI 8859-15 (latin-9). Le jeu de caractères correspondant ISO-8859-1, approuvé par l'IANA, est le codage par défaut des anciens documents HTML ou des documents transmis par messages MIME, tels que les réponses HTTP quand le type de média du document est « text » (par exemple les documents « text/html »). ISO/CEI 8859-2 (latin-2 ou européen central) — prend en charge celles des langues d'Europe centrale ou de l'Est basées sur un alphabet romain. Ceci inclut le bosnien, le croate, le polonais, le tchèque, le slovaque, le slovène et le hongrois. Le symbole de l'euro manquant est présent dans la version ISO/CEI 8859-16. ISO/CEI 8859-3 (latin-3 ou européen du Sud) — le turc, le maltais, et l'espéranto ; largement supplanté par ISO/CEI 8859-9 pour le turc, et par Unicode pour l'espéranto. ISO/CEI 8859-4 (latin-4 ou européen du Nord) — l'estonien, le letton, le lituanien, le groenlandais, et le sami. ISO/CEI 8859-5 (cyrillique) — Couvre la plupart des langues slaves utilisant un alphabet cyrillique, y compris le biélorusse, le bulgare, le macédonien, le russe, le serbe et l'ukrainien (partiellement³). ISO/CEI 8859-6 (arabe) — Couvre les caractères les plus courants de l'arabe. Ne prend pas en charge d'autres langues à alphabet arabe. Nécessite un moteur de rendu qui prend en charge l'affichage bi-directionnel et l'analyse contextuelle. ISO/CEI 8859-7 (grec) — Couvre la langue grecque moderne (orthographe monotonique). Peut être utilisé aussi pour le grec ancien écrit sans accents ou dans l'orthographe monotonique, mais il manque les signes diacritiques pour l'orthographe polytonique. Ceux-ci ont été introduits avec Unicode. ISO/CEI 8859-8 (hébreu) — Couvre l'alphabet hébraïque moderne tel qu'il est utilisé en Israël. En pratique, deux codes différents existent : ordre logique (nécessite un moteur de rendu bi-directionnel pour l'affichage) et ordre visuel (gauche à droite). ISO/CEI 8859-9 (latin-5 ou turc) — Grosso modo le même que l'ISO/CEI 8859-1, où les lettres islandaises peu utilisées sont remplacées par des lettres turques. Il est aussi utilisé pour le kurde. ISO/CEI 8859-10 (latin-6 ou nordique) — Un réarrangement du latin-4. Considéré plus utile pour les langues nordiques. Les langues baltes utilisent plus souvent le latin-4. ISO/CEI 8859-11 (thaï) — Contient la plupart des glyphes requis pour la langue thaï. ISO/CEI 8859-12 — Était supposé couvrir l'alphabet devanāgarī, mais ce projet a été abandonné en 1997. ISCII et Unicode/ISO/CEI 10646 couvrent le devanāgarī. ISO/CEI 8859-13 (latin-7 ou balte) — Ajoute quelques caractères supplémentaires pour les langues baltes qui manquaient en latin-4 et latin-6. ISO/CEI 8859-14 (latin-8 ou celtique) — Couvre des langues celtiques telles que l’irlandais (orthographe traditionnelle), le gaélique écossais, le mannois (langue disparue) et le breton (certaines anciennes orthographes). ISO/CEI 8859-15 (latin-9 ou parfois de façon impropre latin-0) — une révision de 8859-1 qui abandonne quelques symboles peu utilisés, les remplaçant avec le symbole de l'euro € (remplaçant le signe de monnaie ¤) et les lettres Š, š, Ž, ž, Œ, œ, et Ÿ, ce qui complète la couverture du français, du finnois et de l'estonien. ISO/CEI 8859-16 (latin-10 ou européen du Sud-Est) — Prévu pour l’albanais, le croate, le hongrois, l'italien, le polonais, le roumain et le slovène, mais aussi le finnois, le français, l'allemand et l’irlandais (en nouvelle orthographe). Cet encodage mise plus sur les lettres que les symboles. 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