Les codages ASCII étendus

Les limites de ASCII

128 caractères suffisaient pour coder les textes de la langue anglaise. Mais ne suffisent évidemment pas pour coder tous les caractères de toutes les langues.

Par exemple, dans le code ASCII initial (page précédente), les lettres é, è, ê ne sont pas codées.

Pour pallier à ce problème, on a utilisé des extensions de l'ASCII en utilisant le 8ème bit des octets du code ASCII. Ces extensions sont encore utilisées.

Le problème est que sur 8 bits, on ne code que 28 = 256 caractères, ce qui est encore insuffisant pour coder tous les caractères de toutes les langues. Il a donc fallu définir plusieurs extensions de la norme ASCII, incompatibles entre elles.

Détournement d'un album de MartineInformations[1]

Dès 1960, plusieurs propositions de codage coexistent et ont été mises en place sans concertation par différents constructeurs d'ordinateurs qui voulaient profiter du dernier bit (le 8ème) inutilisé par le codage ASCII initial :

  • Le codage des caractères présents dans la table ASCII est conservé

  • Le principe du codage de chacun des caractères sur 1 octet est conservé, avec utilisation complète des 8 bits de l'octet. Cela permet donc de coder 2⁸, soit 256 caractères (128 en plus).

ExempleExemple de norme : ISO 8859-1

La norme ISO 8859-1 souvent appelée Latin-1.

Dans cette norme la lettre é est prévue : elle correspond au code e9 (écriture hexadécimale), c'est à dire 233 en décimal (donc codé 11101001 en machine).

Incompatibilité

L'incompatibilité de ces normes entre elles posent de nombreux problèmes. Avant l'Unicode (que l'on va étudier en pages suivantes), aucun jeu de caractères ne fournissait toutes les lettres, symboles techniques...

Produire un logiciel obligeait alors à écrire plusieurs versions du logiciel (pour chaque jeu de caractères) ou produire un code beaucoup plus complexe pour traiter tous les jeux de caractères.

Titre de chanson qui devrait être en cyrilique (Моя Страна) sur un autoradio