Le format texte en informatique c’est simple non ? Sachant qu’un octet offre 256 possibilités pour décrire les différents signes utilisés dans l’écriture : lettre, chiffre, ponctuation, caractère accentué, symbole et autres caractères.

Rien de plus simple pour se mettre d’accord pour définir une convention de texte pour échanger sans soucis des lettres et des mots. 

Et bien non, depuis l’invention du codage informatique des symboles dans les années 60 (du siècle dernier), nous ne sommes toujours pas arrivés à une solution universelle. 

Les tâtonnements 

Ce codage informatique des symboles, est plus connu sous le nom « ASCII » qui signifie « American Standard Code for Information Interchange »Voilà que ça commence déjà mal avec « American » ! Pour rappel, les américains n’utilisent pas d’accents, donc histoire d’économiser 1 bit, le premier ASCII ne définit que 128 possibilités et aucun accent.  

Il a fallu plusieurs années et l‘ASCII 8bits de l’ANSI pour passer à 256 possibilités et intégrer des accents (le terme ANSI est d’ailleurs couramment utilisé pour parler de l’ASCII 8bits).  Mais déjà chacun y allait de sa version pour attribuer les places, et de fait plusieurs versions de l‘ASCII 8bits ont fait leur apparition, suivant le pays et évoluant au gré des besoins (nouveaux symboles monétaires).  

Evidemment toutes ces versions étaient incompatibles entre elles et savoir quelle version était utilisée par un texte donné relevait du jeu de hasard et pouvait donner ce genre de lecture de la lettre é mal interprétée é voire ÃƒÂ©  

La mondialisation  

L’ASCII, tel qu’imaginé à l’origine par les pays occidentaux, ne traitait évidemment que l’alphabet dit « latin » (celui que vous êtes en train de lire). Les alphabets autres : arabe, cyrillique, hébreu ou les différents formats d’idéogramme utilisés en Asie passaient complètement à la trappe. De toute façon ce type d’alphabet ne pouvait pas être décrit de façon exhaustive avec les 256 combinaisons offertes par le 8bits 

L’ASCII dû donc évoluer vers un format offrant plus de souplesse en pratique sur 2 octets donc riche de 65 536 possibilités. Ceci dit il n’évita pas non plus l’écueil des versions spécifiques et dû être complété d’un codage qui attribue un nom à chacune des versions.

Vous voilà donc en train de lire non pas du simple français mais des caractères latins en français de France encodés en UTF-8. 

Les échanges  

Disposer des caractères n’est pas la finalité, l’objectif réel est d’échanger des données complexes : des mots, des phrases et bien sûr des données structurées.  Alors oui, on dispose du saut de ligne qui permet une séparation, mais l’idée est de structurer les données sous forme de tableau par exemple.

Pour cela il va falloir segmenter les données et donc trouver comment séparer la donnée 1 de la donnée 2 sur la ligne du tableau, etc.

Le premier format imaginé est le CSV pour Comma Separated Values ou en français Valeurs Séparées par des Virgules. Vous me voyez venir : en français les nombres décimaux comportent une virgule, donc la virgule comme séparateur de colonne ca ne va pas être possible.  

Qu’à cela ne tienne, la virgule est devenue un point-virgule dans de nombreuses interprétations. Dans l’absolu on peut imaginer utiliser des points virgules dans les données, donc on encadre les chaines classiquement avec un « et on double les » si on veut les utiliser. Donc le tableau pour décrire un écran 24″ LED au prix de 225,50 Euros devient : « écran 24″ » LED » ; « 225,50 ».

Alors toujours aussi simple le format texte ?

 

Olivier Piochaud, PDG d’Apsynet

 

Newsletter

Categories: Développement & Web