Encore des jeux de caractères : ISO 8859-1, MacRoman, CP1252?

Dans la première partie, Jeux de caractères : Morse, ASCII, ISO/CEI 646?, nous avons survolé les origines d’une longue tradition de jeux de caractères aux noms tous plus effrayants les uns que les autres.

Exemple de jeux de caractères dans Chrome

Nous nous sommes attardés à des jeux de caractères sur 7 bits seulement et nous avons vu que la norme ISO/CEI 646 permettait de définir des variantes nationales pour pallier au manque flagrant de caractères tels que les caractères accentués.

Malheureusement, l’ajout d’un bit n’a pas réglé le problème. Avec 8 bits, on peut seulement représenter 256 caractères. Pour cette raison, plusieurs jeux de caractères ont encore été créés et pas seulement par l’ISO… des entreprises tels que Microsoft, Apple et IBM se sont mises de la partie.

L’EBCDIC et les pages de code

Une page de code est tout simplement un synonyme de jeu de caractères et le terme aurait été introduit par IBM avec l’EBCDIC, un encodage de caractères sur 8 bits aussi vieux que l’ASCII et de plus, incompatible avec lui.

Pour bien apprécier le degré d’absurdité de certaines pages de code, il suffit de comparer les variantes nord-américaine (037) et britannique (285) de l’EBCDIC. Elles sont presqu’en tout point semblables à l’exception de quelques caractères seulement. Parmi ceux-ci, à la position hexadécimal 5B, il y a le symbole de dollar « $ » dans l’une et le symbole de la livre sterling « £ » dans l’autre.

Par conséquent, si on prend pour acquis que les nord-américains et les britanniques utilisaient leurs variantes respectives, il est facile d’imaginer que si les américains inscrivaient des montants en dollars dans un document, puis que les britanniques ouvraient le même document, tous les montants s’affichaient en livres sterling…

Conversion radicale des deux devises, mais à la portée de tous. Vous prenez une efface, vous supprimez le symbole de dollar puis vous écrivez le symbole de la livre sterling.

L’ISO/CEI 8859, une extension 8 bits de l’US-ASCII

Le jeu de caractères sur 8 bits de l’ISO, soit l’ISO/CEI 8859, reprend les caractères imprimables de l’US-ASCII en excluant les caractères de contrôle sur les plages 0 à 31. Elle utilise donc le huitième bit, c.-à-d. la plage 128 à 255, pour ajouter de nouveaux caractères. Cependant, pour une raison pas bien claire, la norme n’assigne aucun caractère sur la plage 127 à 159.

L’ISO 8859 a pour but de définir des jeux de caractères basés sur l’alphabet latin. Il existe 16 jeux de caractères ISO 8859, de l’ISO 8859-1 à l’ISO 8859-16, et chaque partie contient les caractères d’une ou plusieurs langues groupées selon la région.

L’ISO/CEI 8859-1 (Latin-1) et les langues d’Europe occidentale

En ce qui nous concerne, l’anglais et le français font partie du premier jeu de caractères, soit l’ISO 8859-1, qui représente les langues d’Europe occidentale. Parmi les langues « d’Europe occidentale », on trouve l’anglais, le français, l’allemand, l’italien, l’espagnol, l’islandais, le danois, etc.

Pour ces langues, les grands systèmes d’exploitation avaient aussi leur propre jeux de caractère, plus ou moins équivalents. Sous Windows, c’est la page de code 1252 (CP-1252), sous Mac, c’est le Mac Roman et sous DOS, c’est la page de code 437. Tous ces jeux de caractères ont au moins la décence d’être compatible avec l’ASCII.

« Ÿ » est un caractère français?

L’ISO 8859-1 ne contient pas tous les caractères français, car il n’inclut pas les caractères « œ », « Œ » et « Ÿ » – ce dernier étant apparemment utilisé dans certains noms propres tels que Moÿ-de-l’Aisne et Faÿ-lès-Nemours. En fait, le caractère minuscule « ÿ » existe dans la norme, mais pas la lettre majuscule, qui est nécessaire si on veut écrire ces noms en lettres majuscules.

Pour cette raison, l’ISO 8859-15, aussi connu sous Latin-9 (%$#!???), a éventuellement été créé pour ajouter des caractères manquants en échange de quelques autres moins populaires.

Différences entre l’ISO 8859-1 et l’ISO 8859-15
Position décimale 164 166 168 180 184 188 189 190
ISO 8859-1 ¤ ¦ ¨ ´ ¸ ¼ ½ ¾
ISO 8859-15 Š š Ž ž Œ œ Ÿ

Malgré cette mise à jour, l’ISO 8859-1 est toujours resté la variante prédominante – en effet, personnellement, je n’utilise pas beaucoup le « Ÿ »…

Dernière remarque concernant l’ISO 8859-1 : retenons que l’ISO 8859-1 n’est pas le même chose que l’ISO-8859-1 (il y a un tiret supplémentaire %$#?!!!). En plus du tiret supplémentaire, l’ISO-8859-1 inclut des caractères de contrôles aux positions inutilisées de la version originale. Ne me demandez pas pourquoi…

Windows-1252 (malheureusement appelé ANSI à l’occasion)

Cette page de code est celle qui vient encore aujourd’hui avec Windows dans les langues « d’Europe occidentale » selon la classification ISO. Son succès repose sur le fait qu’elle est non seulement une extension d’ASCII, mais une extension de l’ISO 8859-1.

Souvenons-nous que dans l’ISO 8859-1, la plage 128 à 159 est inutilisée et que dans l’ISO-8859-1, elle contient des caractères de contrôle. Le Windows-1252 a utilisé cette plage pour y insérer les caractères manquants en français (Œ, œ, Ÿ) et en finnois (Š, š, Ž, ž) ainsi que d’autres caractères tels que le symbole de l’Euro « € ». Cette fois-ci, Microsoft a fait ce que l’ISO aurait dû faire au point de départ selon moi.

Ainsi, il contient tous les caractères qui ont été ajoutés avec l’ISO 8859-15 tout en restant compatible avec l’ISO 8859-1, ce qui n’est pas vrai avec l’ISO 8859-15… Grâce à cette compatibilité et à la popularité de Windows, les navigateurs, jusqu’à ce jour, affichent carrément l’ISO-8859-1 en Windows-1252.

MacRoman

Bien que Mac OS utilise l’UTF-8 depuis Mac OS X, il utilisait auparavant le MacRoman, compatible avec l’ASCII, mais sans plus. Il contient la grande majorité des caractères de l’ISO 8859-1 mais dans un ordre complètement différent. Par contre, il n’y a pas de plage inutilisée, ainsi il peut représenter plus de caractères que l’ISO 8859-1.

Le MacRoman contient les caractères français « Œ », « œ » et « Ÿ » mais non les caractères finnois « Š », « š », « Ž » et « ž ». Il n’encode pas non plus les caractères islandais « ð », « Ð », « þ », « Þ », « ý » et « Ý ».

Pour les Islandais, il y avait le MacIceland!

Et maintenant?

Ensuite, il y a l’unicode et spécialement l’UTF-8. L’unicode est un nouveau chapitre qui vise enfin à unifier la représentation de tous les caractères dans une même norme. Et pour une fois, la norme porte bien son nom.

Voyons maintenant si j’aurai le courage de perpétuer cette litanie du diable sur les horreurs du passé, du présent et du futur, en parlant de l’unicode…

Mais si vous me connaissez déjà, vous savez que ma curiosité est plus forte que l’ennui.

Réf. :

  1. Introduction aux jeux de caractères
Publicités

Une réflexion au sujet de « Encore des jeux de caractères : ISO 8859-1, MacRoman, CP1252? »

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s