Minitel 2.0 – Encodage

Minitel 2

Il semblerait que le climat soit à la fermeture, et internet n’échappe pas à la tendance. À écouter certains politiciens français, ce qu’ils désirent, ce n’est pas tant internet qu’un minitel 2.0¹. C’est un projet ambitieux, mais je pense qu’il est techniquement réalisable et c’est pourquoi je me propose d’amener de l’huile au moulin.

Un aspect fondamental de toute transmission de texte informatique est l’encodage du dit texte. Traditionnellement, les systèmes ouest-européens utilisaient l’encodage ISO Latin (officiellement ISO-8859-1), mais il a récemment été largement supplanté par par Unicode encodé au format UTF-8. Le format UTF-8 n’est pas très efficace pour représenter le français: par exemple le mot éléphant est représenté sur 10 octets là où ISO-8859-1 n’en nécessitait que 8. Ce n’est pas étonnant vu que 99% des codes Unicodes sont pour des langues étrangères.

Revenir au système ISO Latin-1 serait une possibilité, mais il lui manque les caractères œ (oe ligaturé) et ÿ (y avec un tréma), on lui préfèrera le format ISO-8859-15 qui contient les caractères manquants (ainsi que le symbole de l’Euro). Toutefois ce système reste limité, et comme notre but est d’implémenter un nouveau Minitel, il nous faut des caractères graphiques, il nous font un mécanisme de sélection de caractères, celui-ci nous permettra aussi d’activer les caractères grecs, nécessaires à une bonne base culturelle. On utilisera pour cela la norme ISO 8859-7.

Pour sélectionner le jeu de caractère, une solution serait d’utiliser la norme ISO/CEI-2022, mais celle-ci est basé sur un système 7 bits et donc inefficace. Comme les caractères de contrôles C0 et C1 sont à disposition, nous pouvons utiliser ces derniers pour basculer d’un mode à l’autre en utilisant chaque fois qu’un seul octet. Nous avons tous les éléments d’une norme d’encodage Minitel 2.0:

  • Chaque caractère est représenté par un seul octet.
  • Utilise les caractères de contrôles C0 et C1.
  • Différent modes graphiques qui préservent la zone ASCII et les codes de contrôles C0 et C1.
  • Mode 0, par défaut, text encodé au format ISO 8859-15
  • Mode 1, éléments graphiques
  • Mode 2, caractères grecs (ISO 8859-7)
  • Le caractère 0E active le mode 1 (graphique).
  • Le caractère 0F revient au mode 0 (ISO 8859-15).
  • Le caractère 91 active le mode 2 (ISO 8859-7).

Pour les caractères graphiques, rien de plus simple, le standard Unicode définit depuis 2020 un bloc nommé Symbols for Legacy Computing qui contient tous les caractères pour construire des graphismes. Le mode graphique correspond donc à la plage unicode U+1FB00.

Voilà, je pense que nous avons là une bonne base de fonctionnement. C’est clair que c’est un peu plus compliqué, mais la spécificité est à ce prix.

¹À ne pas confondre avec le Minitel 2.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.