top of page
Rechercher

Encoding

  • Photo du rédacteur: Renaud Jordi
    Renaud Jordi
  • 26 févr. 2024
  • 2 min de lecture

Quelle est la différence entre Unicode, UTF-8, ISO-8859-1 ?

En 2024, il est temps d’afficher correctement ses textes 🙂

Reprenons à la base.


8 bits codés 0 ou 1 qui, mis bout à bout, peuvent vouloir dire plusieurs choses : Un entier signé, non signé, un flottant ?

Des octets en mémoire ne servent que l’interprétation que l’on en fait 😉


Très tôt, les systèmes ont stocké du texte. Et tous ont fait le même constat. Il faut une table de conversion entre la valeur d’un octet et la représentation d’un caractère.

C’est dans les années 1960 que les premières versions de la table ASCII a harmonisé cette interprétation.

À l’époque, les 128 premiers caractères sont standardisés : les caractères latin (a à z), les chiffres, les caractères de ponctuation, des caractères spéciaux (#, $, %…) et des caractères de contrôle non imprimables comme la tabulation, le retour chariot…

La deuxième page (octets de 128 à 255) sert à la régionalisation (caractères européens accentués, alphabet cyrillique, alphabet thaïlandais…). C’est l’ ISO 8859 qui a normalisé 16 pages encore utilisées aujourd’hui.

En France, nous utilisons bien souvent l’ ISO-8859-15 qui contient les caractères accentués, le symbole Euro, la ligature œ... Mais aussi des caractères qui permettent d’écrire en allemand, espagnol, danois…


Vous l’aurez compris, chaque région du monde utilise une page différente, toujours avec la contrainte d’un caractère par octet. Ce qui veut dire qu’une valeur peut être interprétée différemment selon la page utilisée. 😟

Devant ce constat, un consortium s’est mis à l’œuvre pour définir une table universelle contenant tous les caractères possibles, indépendante du système utilisé ou du format de stockage.

C’est l’Unicode.

Le consortium met régulièrement à jour la table pour ajouter de nouveaux caractères ou symboles. La dernière en date a ajouté 627 caractères pour un total de 149 813 !


Mais comment l’utiliser ?

Unicode préconise 3 méthodes pour transformer un numéro de caractère (appelé codepoint) en octets :

UTF-32 : utilise 4 octets pour coder un caractère. Prend donc beaucoup de place, mais est très facile à traiter : une valeur sur 4 octets = 1 codepoint

UTF-16 : utilise 2 octets minimum pour coder un caractère. Peut coder la majorité des codepoints courants sans transformation.

UTF-8 : utilise 1 octet minimum et est compatible avec la table ASCII. L’algorithme utilisé pour coder les numéros supérieurs à 127 n’est pas compliqué, et l’augmentation de la puissance de calcul aujourd’hui facilite l’implantation partout.


Dans le monde d’aujourd’hui, rien d’étonnant de voir l’UTF-8 de plus en plus présent.

En 2020, 95% des sites web l’utilisent ! Alors, utilisez-le !


Pour résumer :

Rien ne ressemble plus à un octet qu’un autre octet ! Vous devez savoir ce que vous êtes en train de lire : de l’ISO-8859-1 ? de l’UTF-8 ?

Posez-vous la question si vous ne voulez plus de é ou è 😉



 
 

© LH&TECH, tous droits réservés.

bottom of page