Qu'est-ce qu'Unicode : guide complet, utilisations et codages

Dernière mise à jour: 20 Août 2025
  • Unicode attribue un point de code unique à chaque caractère et synchronise son répertoire avec la norme ISO/IEC 10646.
  • UTF-8, UTF-16 et UTF-32 codent les mêmes caractères et permettent une conversion sans perte.
  • Les propriétés de normalisation, Bidi et UCD garantissent une comparaison, un ordre et un rendu cohérents.
  • L’adoption d’Unicode (de préférence UTF-8 sur le Web) empêche la corruption et facilite l’internationalisation.

Illustration générique sur Unicode

Unicode est le langage commun que les ordinateurs utilisent lorsqu'ils traitent du texte.: attribue un numéro unique à chaque caractère et symbole, dans presque tous les systèmes d'écriture, afin qu'ils puissent être stockés, traités et partagés de manière transparente sur toutes les plateformes et dans tous les pays.

Cette norme a été créée pour surmonter les limitations des anciens jeux de caractères (l'ensemble ASCII, pages de codes, EBCDIC, etc.), qui étaient courts ou incompatibles entre eux, et aujourd'hui il est synchronisé avec ISO/IEC 10646, maintient les algorithmes (tels que bidirectionnels) et définit les propriétés et les règles de normalisation pour que tout fonctionne de manière cohérente.

Qu’est-ce qu’Unicode et pourquoi est-il si important ?

Unicode est une norme de codage de caractères universelle et en constante évolution. qui décrit chaque caractère avec un nom, un point de code et un ensemble de propriétés (script, catégorie, directionnalité, majuscules/minuscules, etc.). Le Comité technique Unicode (UTC), au sein du Consortium Unicode, le maintient en phase avec la norme ISO/IEC 10646..

Son objectif est l’universalité, l’uniformité et l’unicité:un répertoire large qui permet un échange sans ambiguïté de textes multilingues, avec des règles claires et reproductibles. Grâce à cela, les technologies modernes (systèmes d’exploitation, navigateurs, XML, Java, bases de données) peuvent mélanger des écritures latines, des écritures arabes, des idéogrammes CJK, des émojis, des symboles techniques ou musicaux dans un même document..

Caractères, glyphes et points de code

En Unicode, un caractère est une unité d'information abstraite et un point de code est son identifiant numérique.. un Le glyphe est la forme visuelle (ce que vous voyez à l'écran), qui dépend de la policeUn seul caractère peut avoir plusieurs glyphes, et parfois un glyphe représente plus d'un caractère.

La notation habituelle pour un point de code est U+XXXX en hexadécimalExemples illustratifs du matériel analysé : la minuscule 'l' est U+006C, la minuscule précomposée 'ü' est U+00FC, le 'é' est U+00E9 et le bêta grec : la lettre majuscule est U+0392 et la minuscule U+03B2 (dans certains textes 'β' est cité avec U+0392, mais ce code correspond à la lettre majuscule 'Β').

L'espace de code Unicode comporte 1.114.112 10 XNUMX positions possibles (jusqu'à U+XNUMXFFFF), organisé pour couvrir et classer tous les systèmes d'écriture et symboles, avec des dizaines de milliers de tâches efficaces et croissantes dans chaque version.

Plans, zones et blocs

Unicode divise son espace en 17 plans contenant chacun jusqu'à 65.536 XNUMX points de code.Cette organisation permet de regrouper facilement les scripts et symboles associés et de trouver rapidement ce que vous cherchez.

Plans les plus pertinentsLe Plan multilingue de base (BMP, plan 0) contient presque toutes les écritures modernes et de nombreux symboles ; le Plan multilingue supplémentaire (SMP, plan 1) contient des écritures historiques et des symboles techniques (par exemple, musicaux et mathématiques) ; le Plan idéographique supplémentaire (SIP, plan 2) développe les idéogrammes CJK ; le Plan 14 (SSP) comprend des étiquettes spéciales ; et les Plans 15 et 16 sont destinés à un usage privé.

Blocs et zones:Les plans sont subdivisés de manière informelle en zones et formellement en blocs contigus. Ces blocs servent à classer et à documenter les caractères, même s'ils ne correspondent pas toujours à des groupements linguistiques significatifs.

  Qu'est-ce que la sauvegarde en informatique ?

Les idéogrammes CJK et le projet Unihan

Les idéogrammes d'Asie de l'Est (han) sont unifiés en Unicode avec des variations stylistiques selon la région, mais se référant à la même nature abstraite. Il est géré par le Groupe de rapporteurs idéographiques (IRG), un groupe de représentants de l'ISO/IEC JTC1/SC2/WG2 provenant de Chine, du Japon, de Corée, du Vietnam, de Hong Kong, de Macao, de Singapour et des États-Unis, entre autres.

La base de données Unihan Il rassemble des informations auxiliaires (lectures, significations, équivalences) indispensables à la gestion de ces idéogrammes dans différentes langues et normes historiques ou d'entreprise.

Principaux blocs et extensions CJK:

  • Idéogrammes unifiés CJK (BMP, U+4E00–U+9FFF):20.992 XNUMX caractères couramment utilisés.
  • Extension A (BMP, U+3400–U+4DBF): 6.592 XNUMX idéogrammes moins fréquents.
  • Extensions B–H: dans SMP/SIP/TIP, ils s'élèvent à des dizaines de milliers de plus (B : U+20000–U+2A6DF, 42.720 2 ; C : U+700A2–U+73B4.154F, 2 740 ; D : U+2B81–U+222B2F, 820 ; E : U+2B5.762–U+2CEAF, 0 2 ; F : U+7.473CEB30000–U+3134EBEF, 4.939 31350 ; G : U+323–U+4.192F, XNUMX XNUMX ;
  • Autres blocs CJK associés: Radicaux Kangxi (U+2F00–U+2FDF), Symboles et ponctuation CJK (U+3000–U+303F), Compatibilité et formats de compatibilité, Supplément d'idéogramme de compatibilité, etc.

Unicode prédit que l'incorporation d'idéogrammes n'aura pas de fin absolue et envisage des mécanismes tels que des séquences de description idéographique pour représenter des symboles non codés en les décomposant en composants existants (avec prudence : sans décomposition canonique ni garanties dans des opérations telles que la recherche ou le tri).

Formes de codage : UTF-8, UTF-16 et UTF-32

Unicode définit des formes de transformation (UTF) qui convertissent les points de code en unités de stockage. afin que le logiciel puisse traiter le texte efficacement en fonction de son contexte.

UTF-8 Il s'agit d'un format de longueur variable, orienté octets, compatible avec l'ASCII dans la plage U+0000–U+007F sur un seul octet. La norme actuelle utilise de 1 à 4 octets par caractère ; certains textes plus anciens mentionnent 1 à 6, mais l'Unicode moderne utilise 1 à 4. C'est le format dominant sur le web.

UTF-16 utilise des unités de 16 bits

(une ou deux unités de code par caractère):La plupart des caractères BMP tiennent sur une seule unité ; les caractères supplémentaires utilisent des paires de substitution dans la plage U+D800–U+DFFF.

UTF-32 Il est de longueur fixe : 4 octets par caractère, simple mais gourmand en espace ; utile lorsque l'indexation directe des caractères est importante et que la mémoire n'est pas un problème.

Comment les bits sont distribués en UTF-8

Le format UTF-8 distribue les bits de points de code en séquences de 1 à 4 octets. avec des en-têtes reconnaissables, ce qui évite les ambiguïtés et facilite la détection des limites de caractères.

Plage Unicode Modèle de bits Octets
U+0000..U+007F 0xxxxxx 1
U+0080..U+07FF 110yyyyy 10xxxxxx 2
U+0800..U+FFFF 1110zzzz 10yyyyyy 10xxxxxx 3
U+010000..U+10FFFF 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx 4

L’un des principaux avantages de l’UTF-8 est qu’il évite les problèmes d’ordre des octets (endianness). et permet de traiter des flux de texte avec une grande efficacité, en plus d'être rétrocompatible avec l'ASCII.

Schémas de codage, endianness et BOM

En plus des formes UTF, Unicode décrit les schémas de sérialisation. qui résolvent la manière dont les octets sont transmis entre des systèmes ayant des endianness différents et comment des aspects tels que l'ordre des octets sont signalés.

  • UTF-8: l'endianness ne s'applique pas. Cela peut être Marque d'ordre des octets (BOM) comme indice, bien que cela ne soit pas obligatoire ou recommandé par défaut.
  • UTF-16: Variantes BE/LE (big/little-endian) et BOM facultatif (si manquant et non défini par le protocole, le big-endian est supposé).
  • UTF-32:Variantes BE/LE avec règles analogues ; BOM autorisée comme marque de commande.
  Ken Thompson : UNIX est né

Il existe également des variantes spécifiques tels que UTF-16BE/UTF-16LE et UTF-32BE/UTF-32LE (sans BOM par convention), et d'autres encodages historiquement compatibles tels que UTF-7 ou UTF-EBCDIC, ainsi que GB18030 (équivalent chinois de l'UTF-8 avec prise en charge du chinois simplifié et traditionnel).

Normalisation, composition et équivalences

De nombreux caractères peuvent être représentés comme des précomposites ou comme des séquences combinant base+marque.Exemples classiques de matériel révisé : la forme précomposée « Ä » est U+00C4, tandis que la forme décomposée est « A » (U+0041) + tréma (U+0308). Le « ỗ » vietnamien peut être représenté par « o » (U+006F) + circonflexe (U+0302) + tilde (U+0303).

Unicode définit des formes standardisées et deux types d'équivalence: canonique (même contenu essentiel) et compatibilité (formes qui peuvent sembler identiques mais avec des différences sémantiques). La normalisation garantit des comparaisons de chaînes fiables et réduit les doublons..

Algorithme bidirectionnel et caractères spéciaux

Pour les écritures de droite à gauche, comme l’arabe ou l’hébreu, Unicode intègre un algorithme bidirectionnel. (Bidi) normalisé et évolutif (par exemple, révisions dans 6.3) afin que les textes mixtes latins et arabes soient rendus dans l'ordre visuel correct.

Classes de points de code que vous devez connaître selon le matériel reçu : caractères graphiques (lettres, signes, symboles), caractères de formatage (invisibles mais affectant le traitement : U+2028 saut de ligne, U+2029 saut de paragraphe, U+00A0 espace), codes de contrôle hérités pour la compatibilité (plages U+0000–U+001F, U+007F, U+0080–U+009F), usage privé, positions réservées, substituts (U+D800–U+DFFF pour UTF-16) et non-caractères (U+FFFE, U+FFFF sur chaque plan).

Unicode, ISO/IEC 10646 et autres normes (ASCII, ANSI, pages de codes)

Unicode est synchronisé avec la norme ISO/IEC 10646 (UCS) et conserve les correspondances avec les normes précédentes (ASCII, ISO 8859-1, ANSI Z39.64, JIS X 0208, KS X 1001, GB 2312, GB 18030, HKSCS, CNS 11643, etc.), en plus de réserver des espaces à usage privé aux fabricants.

ASCII contre Unicode: ASCII est un ensemble de 7 bits de 128 caractères., suffisant pour l'anglais de base, mais insuffisant pour les langues avec des signes diacritiques, des idéogrammes ou des émojisUnicode couvre plus de 140.000 8 caractères et ce chiffre ne cesse de croître, avec un codage 16/32/XNUMX bits au format UTF.

ANSI et pages de codes« ANSI » désigne généralement des pages de codes Windows 8 bits limitées et incompatibles. Un ordinateur exécutant un texte d'ouverture OEM-Latin II en IBM EBCDIC-Cyrillic verra des caractères incorrects. Unicode résout ce problème grâce à un répertoire unique et à des conversions sans perte entre ses propres formes.

Implémentation sur systèmes (Windows, Solaris) et conversion

Windows utilise en interne UTF-16 pour ses API modernes et offre des fonctionnalités telles que MultiByteToWideChar y WideCharToMultiByte pour convertir entre Unicode et les pages de codes (SBCS/DBCS/MBCS). Si vous êtes obligé de convertir vers une page de code, il peut y avoir une perte s'il ne peut pas représenter tous les personnages.

Les nouvelles applications sous Windows doivent utiliser UTF-16 en interne et laissez la conversion aux bords (E/S, protocoles), minimisant ainsi la corruption. Néanmoins, Windows conserve la prise en charge des pages de codes lorsque cela est inévitable..

Oracle Solaris 11, selon la documentation révisée, prend en charge Unicode 6.0 et ISO/IEC 10646:2011 au niveau du système, en utilisant UTF-8 comme format par défaut dans ses ensembles de paramètres, ce qui évite les problèmes d'ordre des octets et préserve de manière transparente l'ASCII.

Unicode en pratique : Web, documents et programmation

Sur le Web, il est courant de diffuser et de stocker du contenu en UTF-8. En HTML, déclarez ' ' pour assurer la compatibilité, et utilise des entités numériques hexadécimales lorsque cela est nécessaire (exemple : l'euro « € »).

  Le « Soleil artificiel » chinois bat un record de 1.066 XNUMX secondes dans sa course à la fusion nucléaire

Dans Word, vous pouvez insérer des symboles Unicode En plaçant le curseur, en allant dans Insertion > Symbole, ou en saisissant le code et en appuyant sur Alt+X, la valeur sera convertie en caractère, conformément aux recommandations habituelles. Voir aussi liste des codes Alt pour insérer des symboles à partir du clavier.

Dans les langages de programmationEn Python 3, les chaînes sont désormais au format Unicode ; en Java et C#, vous pouvez utiliser les échappements « \uXXXX » ; en HTML, « &#xXXXX; ». L'important est que l'édition, la compilation et la transmission utilisent le même encodage pour éviter les erreurs.

Copier et coller des symboles fonctionne si la chaîne entière est en Unicode.Si les pièces utilisent un codage différent, des points d'interrogation, des cases ou des symboles étranges peuvent apparaître.

Base de données de caractères (UCD), propriétés et catégories

La base de données de caractères Unicode (UCD) publie pour chaque point de code son nom, sa catégorie, son script, ses propriétés de casse, sa directionnalité et d'autres caractéristiques.Ces informations sont vitales pour le bon fonctionnement des moteurs de rendu et de traitement de texte.

Grâce à ces propriétés, différents composants et algorithmes (tels que le tri, la segmentation des mots ou la transformation de la casse) peuvent se comporter de manière cohérente sur les mêmes données.

Versions et extensions de la norme : points forts

Unicode évolue avec chaque version, intégrant de nouveaux scripts, symboles et émojis. Parmi les nouveautés, citons la version majeure 1.0 de 1991, avec 7.161 XNUMX caractères, et les extensions ultérieures qui ont ajouté des milliers de nouveaux symboles, idéogrammes, émojis et scripts.

Par exemple, en 2022, la version 15.0 a ajouté 4.192 XNUMX caractères CJK supplémentaires et d'autres éléments, atteignant environ Caractères 149.186.

Outils pour explorer la table Unicode

Il existe des utilitaires gratuits pour rechercher et analyser des caractères:Unibook Character Browser, SYMBL et Branah.com vous permettent d'interroger les propriétés, les noms et les blocs de caractères, ce qui permet aux développeurs et aux créateurs de contenu de trouver rapidement les informations dont ils ont besoin.

Cas d'utilisation : formulaires d'adresse, internationalisation et affaires

Permettre aux utilisateurs de saisir des adresses dans leur langue et leur écriture Cela permet de réduire les erreurs et d'améliorer l'expérience utilisateur. L'interopérabilité Unicode évite également les problèmes de conversion entre différents systèmes, préservant ainsi l'intégrité du texte tout au long de la chaîne numérique.

C'est pour cette raison qu'Unicode est l'élément fondamental qui garantit que le texte reste définitif tout au long de l'infrastructure numérique., des formulaires Web aux systèmes de bases de données et aux documents imprimés, que vous utilisiez « ñ », l'arabe, le chinois ou des émojis dans la même phrase.

Numérotation binaire
Article connexe:
Numérotation binaire : le langage secret des ordinateurs