DONNEES 4 : ENCODAGE DES CARACTERES

1. Un peu d'Histoire
Si le caractère existe depuis environ deux millénaires, sa représentation abstraite sous forme numérique est plus récente. Elle a notamment été développée pour le télégraphe. Cette abstraction permettant d'améliorer l'efficience des communications. Cependant, au milieu du XXème siècle, chaque matériel (notamment les imprimantes) avait leur propre codage. Tout ordinateur était livré avec ses sous-programmes et ses tables permettant de transposer les codes d’un matériel à l’autre. L'émergence dun codage unifié s'est cependant heurtée à des différences d'approche conventionnelles et culturelles du concept de caractère.
  • 1690 : première expérience de transmission d’une information codée au Jardin du Luxembourg (Paris) à l’aide d’un télégraphe.
  • 1832 : invention de l’alphabet Morse international par Samuel Morse.
  • 1912 : création de l’American Institute of Electrical Engineers (aujourd’hui IEEE) pour définir des standards industriels américains.
  • 1926 : création de l’AFNOR, organisation française pour la normalisation des standards français.
  • 1947 : création de l’ISO (Organisation Internationale de Normalisation). Cette organisation a pour but de produire des normes internationales appelées normes ISO.
  • 1961 : apparition de la première version du code ASCII (American Standard Code for Information Interchange).
  • 1991 : apparition du standard Unicode.
2. Représentation d'un caractère : une histoire de norme
Un fichier contient une représentation de données.
Par exemple un fichier peut contenir une représentation d'un texte. Bien souvent on dit plus simplement que le fichier contient le texte. Le contenu du fichier n'est lui -même qu'une suite de 0 et de 1, des bits. On choisit donc de coder chacune des lettres, plus généralement chacun des caractères, par une représentation binaire.
2.1. La norme ASCII
Le codage ASCII est une norme de codage de caractères en informatique ancienne et connue pour son influence incontournable sur les codages de caractères qui lui ont succédé. ASCII contient les caractères nécessaires pour écrire en anglais.

L'ASCII définit seulement 128 caractères numérotés de 0 à 127 et est codé en binaire sur un 7 bits de 000 0000 à 111 1111.
Sept bits suffisent donc pour représenter un caractère codé en ASCII. Pour alléger les notations, le caractère codé est représenté le plus souvent par l’équivalent en hexadécimal ou en décimal du nombre binaire associé.
Remarque : dans la pratique, on code un caractère sur 8 bits (1 octet) avec le bit de poids fort toujours égale à 0.
2.2. La norme ISO-8859-1
Le code ASCII a été conçu pour représenter des textes écrits en anglais, il n'y a donc pas d'accents, de tréma…

Par exemple, en français les caractères é, è, ç, à, ù, ô, æ, œ sont fréquemment utilisés alors qu’ils ne figurent pas dans la table ASCII. Il va donc falloir étendre la table ASCII pour pouvoir coder les nouveaux caractères avec un 8eme bit.

Cela donne la norme ISO-8859-1 (souvent appelé Latin-1). On trouve dans cette norme quasiment tous les caractères utilisés dans la langue française. Il manque cependant le œ !

On remarque que les 128 premiers caractères correspondent à la table ASCII.
En France, depuis l’apparition de l’euro, c’est le codage ISO-8859-15 (souvent appelé Latin-9) qui est utilisé.

C’est une sorte de mise à jour de la norme ISO-8859-1. Il permet d’utiliser tous les caractères que l’on veut dans notre langue française.
2.3. La norme Unicode
Le problème de la norme précédente se trouve dans l’échange de texte à l’échelle mondiale. 256 caractères ne suffisant pas pour représenter les lettres de tous les alphabets utilisés (pensons au russe, à lhébreu, etc.), un nouveau standard a été introduit : Unicode.

Il vise à donner à tout caractère de n’importe quel système d’écriture (toute langue confondue) :
  • Un identifiant numérique que l’on appelle point de code.
  • Un descriptif.
Le POINT DE CODE est noté U+xxxx, où xxxx est en hexadécimal, et comporte 4 à 6 chiffres. Il est compris entre U+0000 et U+10FFFF.
Toutes les places ne sont pas occupées, on estime le taux de remplissage à environ 17%.

Il reste donc encore de la place !

Exemple de caractères en norme Unicode :
Le codage de cette table est multiple. Le codage le plus couramment utilisé se nomme UTF-8. Son principe est le suivant :
Où xxxx représente le codage binaire du point de code.

Exemples de caractères :