Aller au contenu

Encodage de caractères

L'encodage de caractères fait référence au processus de conversion de caractères, de symboles ou d'informations textuelles en signaux ou représentations spécifiques, qu'ils soient numériques ou non. Ce processus permet de transmettre des informations textuelles à travers divers moyens de communication. L'objectif de l'encodage de caractères est de permettre la transmission, la réception et la compréhension efficaces des messages textuels, quelle que soit la méthode de communication utilisée. Il peut prendre diverses formes en fonction du contexte et de la technologie employée.

Premiers systèmes

Les premiers systèmes d'encodage de caractères ont permis de transmettre des informations plus facilement, plus rapidement et/ou sur de plus longues distances.

Télégraphe Chappe (1794)

Le télégraphe Chappe était un système de communication optique inventé par les frères Chappe à la fin du 18e siècle en France. Il utilisait une série de bras mécaniques montés sur des tours pour transmettre des messages sur de longues distances en utilisant un code visuel. Les opérateurs pouvaient positionner les bras dans différentes positions pour représenter des lettres, des chiffres et des mots. Ce système a permis des communications rapides sur des centaines de kilomètres et a été largement utilisé en France avant l'avènement des télécommunications modernes.

chappe-telegraph.png

Source image

Code Morse international (1838)

Le code Morse est un système de communication inventé par Samuel Morse au 19e siècle. Il utilise des séquences de points (courts signaux) et de tirets (longs signaux) pour représenter les lettres, les chiffres et les symboles. Chaque caractère a une séquence unique de points et de tirets. Le code Morse était largement utilisé dans les télécommunications à longue distance, en particulier dans la communication par télégraphe. Il a été essentiel pour la transmission de messages à travers des lignes télégraphiques avant l'avènement des communications électroniques modernes.

morse-code.png

Source image

Code international des signaux (1855)

Le Code international des signaux est un système de communication visuelle utilisé en navigation maritime. Il utilise une série de drapeaux colorés et de signaux pour représenter des lettres, des chiffres et des messages préétablis. Les navires l'utilisent pour communiquer des informations importantes, telles que des messages d'urgence, des indications de navigation ou pour signaler leur identité. Chaque lettre et chiffre a un signal spécifique, ce qui permet aux marins de communiquer efficacement, même lorsque les langues parlées sont différentes. Le Code international des signaux contribue à la sécurité et à la coordination dans les opérations maritimes.

ics-flags.png

Source image

ASCII

L'ASCII (American Standard Code for Information Interchange) est un système de codage de caractères largement utilisé dans l'informatique, publié en 1963. Il attribue des valeurs numériques uniques (de 0 à 127) à des caractères tels que les lettres de l'alphabet, les chiffres, ainsi que les symboles de ponctuation et de contrôle. Chaque caractère est représenté par un code binaire de 7 bits, permettant ainsi la transmission, le stockage et le traitement des données textuelles sur les ordinateurs et les systèmes de communication. Bien qu'initialement développé pour l'anglais, l'ASCII a été étendu pour inclure d'autres langues et caractères spéciaux dans des variantes appelées "ASCII étendu".

ascii.png

Source image

Extended ASCII

L'ASCII étendu est une variante de l'ASCII qui utilise 8 bits au lieu de 7 pour représenter des caractères textuels, apparue au début des années 1980. Cela permet d'ajouter des caractères spéciaux, des symboles, des lettres accentuées et des caractères propres à certaines langues. Différentes versions d'ASCII étendu ont été développées pour prendre en charge diverses langues et encodages spécifiques, tels que l'ISO 8859-1 pour les langues européennes occidentales. Ces encodages étendus ont élargi la portée de l'ASCII d'origine pour répondre aux besoins de la communication multilingue et de la représentation de caractères spécifiques à différentes régions du monde.

Code page

Les code pages sont des tables de correspondance utilisées par les systèmes d'exploitation et les logiciels pour interpréter et afficher des caractères en fonction de leur valeur numérique (codage). Chaque code page définit une correspondance spécifique entre les valeurs numériques et les caractères correspondants. Ainsi, une code page détermine comment les données binaires sont interprétées en caractères visibles à l'écran.

ISO 8859-1 (Latin alphabet No. 1)

iso-8859-1.png

Source image

ISO 8859-5 (Latin/Cyrillic alphabet)

iso-8859-11.png

Source image

Problématique des code pages

Le problème de l'utilisation des code pages réside dans le fait que différentes langues et régions utilisent des jeux de caractères différents pour représenter leur texte. Lorsque vous affichez une page web codée dans un jeu de caractères spécifique sur un ordinateur qui n'utilise pas le même jeu de caractères par défaut, les caractères peuvent s'afficher incorrectement, rendant la page difficile à lire ou à comprendre. Cette incompatibilité de codage peut entraîner l'apparition de caractères illisibles, de symboles ou de boîtes à la place du texte attendu, créant ainsi une expérience utilisateur médiocre. Pour résoudre ce problème, il est important de s'assurer que le jeu de caractères utilisé pour créer la page web est compatible avec celui du navigateur ou de l'ordinateur qui l'affiche.

Encodage ISO 8859-1

20min-iso-8859-1.png

Encodage ISO 8859-5

20min-iso-8859-5.png

Caractères et encodage

Tous les caractères ne sont pas disponibles dans chaque code page, et tous les caractères ne sont pas encodés de la même manière.

character-encoding.png

Source image

Unicode

Unicode est une norme informatique, publiée en 1991, qui définit un encodage de caractères universel. Elle vise à représenter pratiquement tous les caractères écrits de toutes les langues du monde, ainsi que des symboles et des emojis. Unicode utilise des codes numériques uniques pour chaque caractère, permettant ainsi une communication textuelle cohérente et multilingue entre les ordinateurs et les systèmes à travers le monde. Cette norme est largement adoptée dans l'informatique moderne pour résoudre les problèmes d'incompatibilité de codage de caractères et garantir l'affichage correct de textes multilingues.

UTF-8

UTF-8 est un encodage de caractères, publié en 1993, largement utilisé, qui fait partie de la norme Unicode. Il permet de représenter des caractères de toutes les langues et de nombreux symboles en utilisant un nombre variable de bits par caractère. Les caractères courants sont encodés avec moins de bits, ce qui rend UTF-8 efficace pour le stockage et la transmission de texte en plusieurs langues. Il est le format d'encodage de caractères standard sur le World Wide Web et dans de nombreux systèmes d'exploitation, garantissant la compatibilité multilingue dans le traitement et l'affichage de données textuelles.

Unicode ≠ UTF-8

Unicode : Donne à tout caractère, de n'importe quel système d'écriture, un nom et un identifiant numérique unique.

UTF-8 : Conversion de l'identifiant numérique d'un caractère Unicode en binaire et inversement.

Terminologie

Character : Unité minimale de texte (glyphe)

Character set : Ensemble de caractères

Coded character set : Ensemble de caractères dans lequel chaque caractère correspond à un identifiant unique, incluant le type d'encodage

Code point : Identifiant unique d'un caractère

Code unit : Séquence de bits (représentant un caractère)

Encoding : Codage des caractères en binaire

character-encoding-workflow.png

Fonctionnement Unicode

Lorsque vous avez une séquence binaire représentant un caractère Unicode et que vous souhaitez l'afficher sous forme de glyphe (c'est-à-dire la forme graphique du caractère), plusieurs étapes techniques sont impliquées.

Encodage Unicode : La lettre minuscule a a un code point Unicode de U+0061, qui est représenté en binaire sous la forme 01100001 (en UTF-8).

Police de caractères : Il faut disposer d'une police de caractères qui inclut la lettre minuscule a. La police déterminera l'apparence exacte du glyphe pour cette lettre.

Mapping du code point : Le système d'exploitation ou le logiciel va faire correspondre le code point Unicode U+0061 à la police de caractères appropriée et à l'emplacement du glyphe spécifique pour a dans cette police.

Rendu du glyphe : Une fois que la police appropriée et l'emplacement du glyphe ont été identifiés, le logiciel utilise les informations de la police pour dessiner le glyphe correspondant à a. Il peut s'agir de dessiner les contours du glyphe en utilisant des chemins vectoriels ou de l'afficher sous forme de bitmap, en fonction de la police et de la taille de la police sélectionnée.

Affichage à l'écran : Enfin, le glyphe a dessiné est affiché à l'écran, de sorte qu'il est visible pour l'utilisateur.

character-encoding-unicode-workflow.png

Source image

Fonctionnement UTF-8

UTF-8 (Unicode Transformation Format 8-bit) est un schéma d'encodage de caractères Unicode qui utilise une séquence variable d'unités de code (code units), allant de 1 à 4 octets, pour représenter chaque code point Unicode.

utf-8-conversion.png

Source image

encoding-evolution.png

Source image

encoding-stats.png

Source image

Glyphe

Unicode 16.0 contient actuellement : 154'998 glyphes [septembre 2024]

unicode-c0.png

unicode-c1.png

unicode-emoticon.png

Source images

Glyphes manquants

unicode-missing-Anatolian-Hieroglyphs.png

Source image

drawing-question-mark.png

Vous devez posséder une police de caractères avec les glyphes !

➡️ Police de caractères Noto

unicode-Anatolian-Hieroglyphs.png