Zoom sur... l'encodage des caractères
Découvrez les principaux systèmes d'encodage des caractères.
Aline Cordier Simonneau 4 min de lecture 
Sommaire
L’encodage des caractères, ça vous parle ? Vous y êtes confronté régulièrement, mais sans forcément vous en rendre compte. Lorsque vous voyez apparaître des caractères spéciaux du type « é » ou « � » sur une page Internet ou dans un fichier, il s’agit d’un problème d’encodage des caractères. Comment fonctionne ce système ? Quelle est son histoire ? Quelles sont les différentes manières d’encoder des caractères ? Petit rappel sur le fonctionnement de l’encodage des caractères et les standards les plus utilisés.
Stocker du texte dans un ordinateur : comment ça marche ?
La question de l’encodage des caractères est liée à la manière dont les ordinateurs stockent du texte. Comment font-ils ? La réponse est simple : ils stockent uniquement des 0 et 1 (appelés « bits »), regroupés en octets (1 octet = 8 bits).
Comment écrire du texte si un ordinateur peut stocker uniquement des bits ? C’est ici que l’encodage des caractères intervient.
- Pour écrire du texte, il faut préalablement établir l’ensemble des caractères dont on a besoin (lettre, signe de ponctuation, espace, etc.) et associer à chacun d’entre eux un identifiant numérique unique (un « point de code »). L’ensemble de ces éléments s’appelle le « jeu de caractères codés ». Des tableaux de correspondance peuvent être établis pour résumer ces informations (ex. : A=1 ; B=2 ; C=3 ; etc.).
- Il faut ensuite déterminer l’encodage, c’est-à-dire la manière de transcrire le texte (grâce aux codes des caractères qui les composent) et de le stocker (sur 1 ou 2 octets).
Le texte que l’on souhaite écrire se compose d’une suite de nombres appelée « chaîne de caractères ».
Mais est-ce vraiment aussi simple ? Pour fonctionner correctement, l’encodage doit également tenir compte de caractères particuliers (« de contrôle »), comme le caractère de « fin de chaîne ». Celui-ci indique la fin de la chaîne aux programmes chargés de manipuler les chaînes de caractères. Il faut également gérer les minuscules, les accents, les symboles de monnaies, et aussi les caractères des langues non latines. C’est pour cela que différents systèmes d’encodage ont vu le jour.
L’ASCII, une norme d’encodage influente mais insuffisante
Le premier encodage utilisé à grande échelle est l’ASCII (« American Standard Code for Information Interchange » ou « code américain normalisé pour l’échange d’informations »). Ce jeu de caractères utilise 7 bits (et non 8) et dispose de 128 caractères (l’alphabet latin et ses 26 lettres, des signes de ponctuation, des espaces, des tabulations, des caractères de contrôle, etc.). Les 128 caractères de l’ASCII ont été regroupés dans une table de correspondances : découvrez-la sur Wikipedia.
Comment gérer l’encodage de caractères d’un pays à l’autre ?
Bien que très utilisé et influent dans le monde informatique, l’ASCII n’était pas satisfaisant pour l’ensemble des pays. Il utilise uniquement les 26 lettres de l’alphabet latin, non accentuées. D’autres pays ou groupes linguistiques ont donc souhaité développer leur propre système d’encodage.
Des extensions de l’ASCII ont été mises au point pour résoudre cette question : utilisation d’un 8e bit, modification des 128 caractères de l’ASCII… Chaque zone utilisant son propre encodage, cette dispersion est vite devenue problématique pour les échanges internationaux.
Une norme pour les langues latines : ISO 8859
La norme ISO 8859 a été créée pour permettre aux langues latines d’Europe d’établir une page de code commune. Elle repose sur l’utilisation de 8 bits soit 256 caractères maximum. Elle est composée de plusieurs pages de code indépendantes (des « parties »), mais compatibles entre elles. L’ASCII est utilisé comme base commune.
Deux parties sont particulièrement connues :
- ISO 8859-1 (latin-1 ou « Occidental »), un système qui permet d’écrire quasiment toutes les langues latines en utilisant des caractères d’un octet.
- ISO 8859-15 (latin-9 ou « Occidental (euro) »), apparu en 1998. Il a introduit le signe « € » et fait évoluer un peu son fonctionnement pour s’adapter à quelques langues comme le français. Cette partie reste bien moins utilisée que l’ISO 8859-1.
Un standard multi-octet pour les langues asiatiques : ISO 2022
Les langues asiatiques utilisent de très nombreux caractères. Il n’était pas possible de les faire tous tenir sur 8 bits. La solution a été de passer sur un système multi-octet (2, 3 et même parfois 4 octets). Le standard mis au point est l’ISO 2022, utilisé pour le chinois, le coréen ou le japonais.
农历新年
Unicode, un standard utilisé au niveau mondial
Unicode est un jeu de caractères unique ou codage universel de caractères, sorti en 1991. Son objectif est de représenter l’ensemble des systèmes d’écriture et caractères existant au niveau mondial.
À noter : Unicode est bien un jeu de caractères (ensemble de caractères auxquels on attribue un code), mais pas un encodage (manière dont est représenté le point de code en mémoire). Les points de code d’Unicode ont besoin de plus d’un octet pour fonctionner. Des encodages spéciaux ont donc été mis au point pour économiser de la mémoire : UTF-16 ou UTF-8, par exemple.
Quels sont les principaux encodages utilisés actuellement ?
Deux encodages sont particulièrement utilisés sur Internet : UTF-8 (pour les pages web), système international capable de mettre en contact toutes les langues, et ISO 8859-1 (latin-1). Si l’ASCII n’est plus employé seul, la plupart des encodages l’utilisent comme base pour des raisons de compatibilité. Ils fonctionnent également avec latin-1.


