Unicode est un système de codage de caractères utilisé par les ordinateurs pour le stockage et l'échange de données textuelles. Ce système fournit un numéro unique (point de code) pour chaque caractère des principaux systèmes d'écriture dans le monde. Il inclut également des symboles techniques, des ponctuations et beaucoup d'autres caractères utilisés pour l'écriture de texte.
Outre le fait qu'il constitue une table de caractères, Unicode inclut des algorithmes pour l'assemblage et le codage des scripts bidirectionnels tels que l'arabe, ainsi que des spécifications pour la normalisation des formats de texte.
Cette rubrique fournit une vue d'ensemble d'Unicode. Vous trouverez des explications plus complètes et la liste des langues pouvant être codées avec Unicode sur le site Web Unicode Consortium.
Points de code
Les caractères sont des unités d'informations qui correspondent en gros à une unité de texte dans le format écrit d'une langue naturelle. Unicode définit la manière dont les caractères sont interprétés, mais pas leur représentation.
Un glyphe, qui correspond à l'affichage ou la représentation visuelle d'un caractère, est la marque apparaissant sur l'écran d'ordinateur ou la page imprimée. Dans certains systèmes d'écriture, un caractère peut correspondre à plusieurs glyphes, ou plusieurs caractères peuvent correspondre à un seul glyphe. Par exemple, "ll" en espagnol est un glyphe mais deux caractères : "l" et "l".
Dans Unicode, un caractère correspond à un point de code. Les points de code sont les numéros attribués par le consortium Unicode à chaque caractère dans chaque système d'écriture. Les points de code sont représentés par U+ suivi de quatre chiffres et/ou lettres. Voici des exemples de points de code pour quatre caractères différents : un l minuscule, un u minuscule avec un tréma, un bêta et un e minuscule avec un accent aigu.
l = U+006C
ü = U+00FC
β = U+0392
é = U+00E9
Unicode contient 1 114 112 points de code ; actuellement, des caractères sont attribués à plus de 96 000 d'entre eux.
Plans
L'espace du code Unicode pour les caractères est divisé en 17 plans, chaque plan comportant 65 536 points de code.
Le premier plan (plan 0) est le plan BMP (Basic Multilingual Plane). La majorité des caractères couramment utilisés sont contenus dans BMP et c'est dans ce plan que la plupart d'entre eux ont été affectés à ce jour. BMP contient des points de code pour presque tous les caractères des langues modernes et beaucoup de caractères spéciaux. Il reste environ 6300 points de code inutilisés dans BMP ; ceux-ci serviront à ajouter d'autres caractères par la suite.
Le plan suivant (plan 1) est le plan SMP (Supplementary Multilingual Plane). SMP est utilisé pour les scripts historiques, et les symboles musicaux et mathématiques.
Codage de caractère
Le codages de caractère définit chaque caractère, son point de code et la manière dont ce dernier est représenté en bits. Si vous ne savez pas quel codage est utilisé, vous ne pouvez pas interpréter correctement une chaîne de caractères.
Il existe de nombreux modèles de codage, mais il n'est pas facile de les convertir entre eux et seuls quelques-uns prennent en charge les caractères d'un nombre important de langues. Par exemple, si votre PC a été défini pour utiliser OEM—Latin II par défaut et que vous avez accédé à un site Web qui utilise IBM EBCDIC—Cyrillic, tous les caractères présents dans l'alphabet cyrillique qui ne figurent pas dans Latin II ne s'afficheront pas correctement ; ils seront remplacés par d'autres caractères, tels qu'un point d'interrogation ou un carré.
Comme Unicode contient des points de code pour la majorité des caractères de toutes les langues modernes, votre ordinateur peut interpréter presque tous les caractères connus à l'aide d'un codeur de caractères Unicode.
Trois codages de caractères Unicode sont principalement utilisés : UTF-8, UTF-16 et UTF-32. UTF correspond à Unicode Transformation Format. Les nombres qui suivent UTF indiquent la taille (en bits) des unités utilisées pour le codage.
- UTF-8 utilise des codages de caractères de largeur variable sur 8 bits. UTF-8 utilise entre 1 et 6 octets pour coder un caractère ; il peut utiliser moins, plus ou le même nombre d'octets qu'UTF-16 pour coder le même caractère. Dans UTF-8, chaque point de code de 0 à 127 (U+0000 à U+0127) est stocké dans un seul octet. Seuls les points de code 128 (U+0128) et supérieurs sont stockés avec 2 à 6 octets.
- UTF-16 utilise une seule unité de code 16 bits à largeur fixe. Ce codage est relativement compact et la plupart des caractères les plus couramment utilisés tiennent dans une seule unité de code à 16 bits. Les autres caractères sont accessibles à l'aide de paires d'unités de code à 16 bits.
- UTF-32 nécessite 4 octets pour coder tout caractère. Dans la plupart des cas, un document codé au format UTF-32 est presque deux fois plus volumineux que le même document codé au format UTF-16. Chaque caractère est codé dans une unité distincte à espacement fixe, en code 32 bits. Vous utilisez UTF-32 si l'espace mémoire ne pose pas de problème et si vous souhaitez pouvoir utiliser une unité de code unique pour chaque caractère.
Ces trois formats de codage codent les mêmes caractères communs et peuvent être convertis de l'un à l'autre sans perte de données.
Les autres codages de caractères Unicode incluent UTF-7 et UTF-EBCDIC. Il existe également un codage GB18030 qui est un équivalent chinois du codage UTF-8 et qui prend en charge les caractères chinois simplifiés et traditionnels.