À la découverte d'Unicode/Avant Unicode : télégraphie, bidouilles et héritages

Un livre de Wikilivres.

Unicode étant l'unification dans un seul et même ensemble de plusieurs jeux de caractères, il est difficile de parler d'Unicode sans parler des jeux de caractères qui l'ont précédé.

L'écriture[modifier | modifier le wikicode]

La Préhistoire est généralement définie comme la période comprise entre l’apparition de l’Humanité et l’apparition des premiers documents écrits, même si cette définition n’est pas sans poser des problèmes. La version anglophone de wikipedia donne l'histoire de l'écriture.

L'écriture matérielle est assez ancienne et forme en quelques sorte une préhistoire de l'écriture dématérialisée. Cette écriture dématérialisée est quelque peu plus moderne et s'est appuyée sur différentes technologies de communication avant l'arrivée du télégraphe électrique.

Télégraphie électrique et code Baudot[modifier | modifier le wikicode]

bande de papier avec des trous représentant les "Code Baudot"
Le clavier et ses cinq touches.

Le code Baudot est dans l'histoire un des premiers codes binaires utilisé grâce à une machine. Il est aussi appelé code télégraphique, Alphabet International (AI) n°1, Alphabet International (AI) n°2 ou code CCITT n°2.

C'est un code binaire, c'est-à-dire que chaque caractère que l'on souhaite est codé par une combinaison de 0 et de 1. Le code ne prévoit que 5 bits pour coder chaque caractère, donc il n'existe que 25 = 32 combinaisons. Or si on désire coder les lettres et les chiffres, il n'y a pas assez de combinaisons. C’est pourquoi le code Baudot contient deux jeux de caractères appelés Lettres et Chiffres. En fait, l’ensemble Chiffres contient aussi d’autres symboles (ponctuation, &, #...). Deux caractères Inversion Lettres (code 31) et Inversion Chiffres (code 27) permettent de commuter suivant que l'on en est mode lettre ou en mode chiffre.

Le premier code de ce type a été développé par Émile Baudot en 1874 : il s'agissait de l'Alphabet International n°1. Il n'est plus utilisé. Les caractères étaient composés à l'aide d'un clavier à cinq touches, où chaque touche correspondait à l'un des cinq bits de chaque caractère.

Cette technologie ancienne et limitée a dès le début posé des problèmes de standardisation.

Émile Baudot avait par exemple trouvé judicieux d'intégrer la lettre É (e accentué aigu) dans son jeu de caractère. La présence ou l'absence de l'accent changeant du tout au tout le sens d'un mot dans la langue française. Ce caractère a été supprimé des versions anglaises, rendant les deux versions incompatibles.

Multiplets élargis et caractères appropriés[modifier | modifier le wikicode]

Carte perforée à 80 colonnes, sur laquelle est codée le texte de programmation «CALL RCLASS (AAA,21,NNC,PX3,PX4)»

Les différents développements économiques, scientifiques et militaires ont conduit à un élargissement des multiplets, passant de cinq bits initialement à huit bits (dont l'octet du grec ὀϰτώ, huit) durant la seconde moitié du vingtième siècle.

Les efforts de normalisations ont commencé tôt avec l'Wikipedia:ISO/CEI 646. Le nombre très limité des caractères disponibles dans un encodage sept bits a tout de suite posé problème, conduisant à l'invention de digrammes et de trigrammes dans le langage C pour représenter avec deux caractères les caractères indispensables au langage C lorsque ces caractères n'étaient pas disponibles.

Cet inconvénient fut pallié en adoptant à un niveau mondial la variante des États-Unis de la famille de jeux de caractères de l'ISO-646. Si ce sous-ensemble fut relativement standardisé dans son adoption, les différents acteurs ont redoublé d'inventivité et de créativité pour apporter aux utilisateurs de ces systèmes les caractères qu'ils souhaitaient utiliser.

Ceci a conduit à l'utilisation d'une multitude de caractères représentant tout aussi bien les caractères traditionnels que l'on avait l'habitude de voir écrits et ou imprimés que des caractères nouvellement inventés ou recréés (comme les caractères € (euro), | (pipe) ou @). Cela a également conduit à ce que ces caractères ne soient pas transmis par la même séquence ou convention numérique en fonction du standard utilisé.

Cela pouvait varier d'un pays à l'autre, mais aussi à l'intérieur d'un même pays. En France, par exemple, des codages différents sont utilisés pour le minitel, pour le DOS, pour Windows, pour Unix et pour les SMS, sans que cela soit limitatif.

Le nombre de système de codage de caractères ainsi inventé est de plusieurs centaines voir de plusieurs milliers, le tout s'étant effectué en raison de l'indépendance de chaque acteur dans la plus grande anarchie.

L'ASCII était alors un sous-ensemble commun à certains d'entre eux, offrant une interopérabilité limitée. À ce sujet, on peut lire le wikilivre Les ASCII de 0 à 127.

Gestion de la diversité et bidouilles[modifier | modifier le wikicode]

Pour gérer cette grande diversité, différentes techniques ont été inventées.

Parmi celles-ci on peut citer l'ISO-2022 et la notion de logiciel traitant les chaînes d'octets indépendamment des caractères représentés.

Dès 1987 deux idées (issues du Centre de recherche de Xerox à Palo Alto (PARC) et d’Apple) convergèrent :

  • la conception d’un codage à largeur fixe mais suffisamment grand pour éviter les difficultés des traitements sur codages multi-octets
  • l’« unification han » pour représenter dans un seul jeu de caractères des textes chinois, japonais ou coréens (CJC - CJK en anglais)

En 1987 et en 1988, Apple et Xerox s'impliquèrent sur ces sujets[1].

Par la suite, le développement de l'industrie logicielle s'est orientée sur l'Unicode.

Références[modifier | modifier le wikicode]

  1. http://www.cairn.info/article.php?ID_ARTICLE=DN_063_0329&DocId=43462&Index=%2Fcairn2Idx%2Fcairn&TypeID=226&BAL=anMlj%2FYMELumM&HitCount=4&hits=29ee+2276+a2c+76c+0&fileext=html
Ce livre a besoin d'une relecturelink={{{link}}}

Ce livre a besoin d'une relecture par un tiers pour corriger les diverses fautes, incohérences, imprécisions, manques et répétitions qui pourraient subsister dans le texte.

  • Jacques André « Caractères, codage et normalization », Document numérique 3/2002 (Vol. 6), p. 13-49.
    URL : www.cairn.info/revue-document-numerique-2002-3-page-13.htm.
    DOI : 10.3166/dn.6.3-4.13-49.