Unicode

{{#ifeq:||Un article de Ziki, l'encyclopédie libre.|Une page de Ziki, l'encyclopédie libre.}}
Fichier:New Unicode logo.svg
Logo Unicode.

Unicode est un standard informatique qui permet des échanges de textes dans différentes langues, à un niveau mondial. Il est développé par le Consortium Unicode, qui vise au codage de texte écrit en donnant à tout caractère de n'importe quel système d'écriture un nom et un identifiant numérique, et ce de manière unifiée, quels que soient la plateforme informatique ou le logiciel utilisé.

Ce standard est lié à la norme Modèle:Nobr qui décrit une table de caractères équivalente. La dernière version, Modèle:Nobr, a été publiée en Modèle:Date<ref name="archives">Modèle:Lien web</ref>.

Totalement compatible avec le jeu universel de caractères (JUC) de l'Modèle:Nobr, le standard Unicode l'étend en lui ajoutant un modèle complet de représentation et de traitement de textes, en conférant à chaque caractère un jeu de propriétés (qui peuvent être soit pour certaines standardisées et stabilisées dans toutes les versions d'Unicode où le caractère a été encodé, soit informatives avec seulement une recommandation sur leur usage qui peut évoluer en fonction des nouveaux besoins trouvés). Ces propriétés décrivent avec précision les relations sémantiques qui peuvent exister entre plusieurs caractères successifs d'un texte, et permettent de standardiser ou recommander des algorithmes de traitement qui préservent au maximum la sémantique des textes transformés. Unicode a pour objet de rendre un même texte utilisable à l'identique sur des systèmes informatiques totalement différents.

Le standard Unicode est constitué d'un répertoire de Modèle:Unité, couvrant plus de 150 écritures, d'un ensemble de tableaux de codes pour référence visuelle, d'une méthode de codage et de plusieurs codages de caractères standard, d'une énumération des propriétés de caractère (lettres majuscules, minuscules, APL, symboles, ponctuationModèle:Etc.) d'un ensemble de fichiers de référence des données informatiques, et d'un certain nombre d'éléments liés, tels que des règles de normalisation, de décomposition, de tri, de rendu et d'ordre d'affichage bidirectionnel (pour l'affichage correct de texte contenant à la fois des caractères d'écritures de droite à gauche, comme l'arabe et l'hébreu, et de gauche à droite).

En pratique, Unicode reprend intégralement la norme Modèle:Nobr, puisque cette dernière ne standardise que les caractères individuels en leur assignant un nom et un numéro normatif (appelé point de code) et une description informative très limitée, mais aucun traitement ni aucune spécification ou recommandation pour leur emploi dans l'écriture de langues réelles, ce que seul le standard Unicode définit précisément. L'Modèle:Nobr fait normativement référence à certaines parties du standard Unicode (notamment Modèle:Lien) ; Unicode est également une norme Modèle:Langue pour le traitement du texte et sert de base à de nombreuses autres normes.

Modèle:Palette Tables Unicode

But

Unicode, dont la première publication remonte à Modèle:Date, a été développé dans le but de remplacer l'utilisation de pages de code nationales.

Ces pages de code avaient dans le passé quelques problèmes. Par exemple, sur les [[Terminal 3270|Modèle:Nobr]] fonctionnant en EBCDIC : lorsqu'une note de service électronique comportait un caractère « signe monétaire », le même texte plafonnant une dépense en dollars pour le lecteur américain faisait afficher sur un écran britannique le même montant en livres sterling, puisque le signe monétaire était différent dans chacun des deux pays.

Dans la pratique, tous les systèmes d'écriture ne sont pas encore présents, car un travail de recherche documentaire auprès de spécialistes peut encore s'avérer nécessaire pour des caractères rares ou des systèmes d'écriture peu connus (parce que disparus, par exemple).

Cependant, les écritures les plus utilisées dans le monde sont représentées, ainsi que des règles sur la sémantique des caractères, leurs compositions et la manière de combiner ces différents systèmes. — Par exemple, comment insérer un système d'écriture de droite à gauche dans un système d'écriture de gauche à droite (texte bidirectionnel).

Standardisation

Interopérabilité

Sous sa forme UTF-8, l'Unicode offre une certaine interopérabilité avec le code ASCII : en effet, les 128 caractères ASCII, y compris les caractères de contrôle, sont représentés de manière identique (sur un octet) en UTF-8 par les points de code U+0000 à U+007F.

Conformité

Le standard Unicode définit des exigences permettant d'évaluer la conformité de l'implémentation d'un processus (ou d'un logiciel) à Unicode<ref>{{#invoke:Langue|indicationDeLangue}} [1].</ref>Modèle:Refins. Ces exigences concernent notamment (dans la Modèle:Nobr) :

  • le traitement de Points de Code non assignés ;
  • l'interprétation des séquences de caractères équivalentes ;
  • ce qu'est une modification d'interprétation du texte ;
  • le codage des caractères ;
  • l'affichage du texte bidirectionnel ;
  • la normalisation ;
  • les algorithmes ;
  • la casse.

Ces exigences permettent le support d'un sous-ensemble d'Unicode.

Alors que l'Modèle:Nobr définit le même jeu de caractères qu'Unicode, la différence entre Modèle:Nobr et Unicode tient essentiellement dans le surplus d'exigence de conformité fourni par Unicode.

Limitations

Unicode est en 2016<ref>Modèle:Lien web.</ref> le standard leader pour le codage informatique des caractères. Il sert à l'interopérabilité de logiciels, et permet par exemple de copier des textes utilisant des caractères de différents alphabets entre des logiciels différents, même n'ayant pas été spécifiquement conçus pour eux (par exemple un programme en caractères APL dans un texte LibreOffice ou dans un courriel sous Gmail). Tous les textes Unicode ne sont cependant pas codés de la même manière. Suivant la normalisation Unicode adoptée, un même signe graphique peut parfois être codé de différentes manières. Certains textes utilisent la convention Modèle:Abréviation discrète, d'autres la convention Modèle:Abréviation discrèteModèle:Etc. Et le standard n'interdit pas de mélanger plusieurs conventions dans un même texte. Il en va de même des logiciels.

Cette coexistence de plusieurs façons d'écrire la même chose a été exploitée par les pirates dans les Modèle:Nobr en leur permettant de déjouer des filtres : les pirates contournaient les interdictions de certaines chaînes de caractères jugées dangereuses tout simplement en les codant sous une autre forme, plus inhabituelle et de ce fait parfois non filtrée.Modèle:Référence nécessaire

Unicode répond à ces limitations en apportant la notion d'équivalence canonique.

Normes et versions

Le travail sur Unicode est parallèle et synchronisé avec celui sur la norme Modèle:Nobr dont les buts sont les mêmes. L'Modèle:Nobr, une norme internationale publiée en français et en anglais, qui ne précise ni les règles de composition de caractères, ni les propriétés sémantiques des caractères.

Unicode aborde cependant la problématique de la casse, du classement alphabétique, et de la combinaison d'accents et de caractères. Depuis la Modèle:Nobr d'Unicode et dans toutes les versions suivantes, les caractères ont les mêmes identifiants que ceux de la norme Modèle:Nobr : les répertoires sont maintenus parallèlement, à l'identique lors de leur standardisation définitive, les deux normes étant mises à jour presque simultanément. Les deux normes Unicode (depuis la Modèle:Nobr) et Modèle:Nobr assurent une compatibilité ascendante totale : tout texte conforme à une version antérieure doit rester conforme dans les versions ultérieures.

Ainsi les caractères de la Modèle:Nobr d'Unicode sont ceux de la norme Modèle:Nobr. La Modèle:Nobr d'Unicode classait Modèle:Nombre, symboles et directives.

La Modèle:Nobr d'Unicode, mise à jour en Modèle:Date, comprenait :

  • Modèle:Unité à usage privé, dont Modèle:Nombre dans le plan multilingue de base (définis dans toutes les versions d'Unicode) et Modèle:Nombre dans les deux derniers plans (depuis la version 2.0 d'Unicode), ce qui doit suffire à tous les usages ;
  • plus de Modèle:Unité ou syllabes, chiffres ou nombres, symboles divers, signes diacritiques et signes de ponctuation, avec parmi eux :
    • plus de Modèle:Unité idéographiques (pour l'écriture classique ou modernisée des langues chinoises, et utilisés en partie et en association avec d'autres écritures plus simples en japonais, en coréen classique, ainsi qu'en vietnamien classique) ;
    • Modèle:Unité précomposées de l'alphabet hangûl (pour la langue coréenne moderne) ;
  • plusieurs centaines de caractères de contrôle ou modificateurs spéciaux ; ainsi que
  • Modèle:Nombre de codes réservés de façon permanente, interdits pour le codage de texte (assignés dans toutes les versions d'Unicode).

Soit un total de près de Modèle:Unité de codes assignés dans un espace pouvant contenir Modèle:Nombre différents.

Quelques problèmes semblent cependant exister, pour le codage des caractères chinois, à cause de l'unification des jeux idéographiques utilisés dans différentes langues, avec une calligraphie légèrement différente et parfois signifiante, mais ils sont en cours de résolution par Unicode qui a défini des sélecteurs de variantes et ouvert un registre de séquences normalisées qui les utilise.

Version Date de publication Nombre de caractères Ajouts notables
1.0.0 Modèle:Date 7129 Unicode 1.0 incluait ces scripts: Arabe, arménien, bengali, bopomofo, cyrillique, devanagari, géorgien, grec et copte, gujarati, gurmukhi, hangul, hébreu, hiragana, kannada, katakana, lao, latin, malayalam, oriya, tamoul, télougou, thaï et tibétain
1.0.1 Modèle:Date 28327 20 902 caractères CJC sont définis
1.1 Modèle:Date 34168 4306 syllabes Hangul supplémentaires ont été ajoutées à l'ensemble original de 2350. Le tibétain a été supprimé dans cette mise à jour.
2.0 Modèle:Date 38885 Le Hangul original est supprimé et est déplacé et remplacé par un nouvel ensemble de 11172. Le tibétain est rajouté à un endroit différent.
2.1 Modèle:Date 38887 Le signe Euro et le caractère de remplacement d'objet ont été ajoutés.
3.0 Modèle:Date 49194 Cherokee, éthiopien, khmer, mongol, birman, ogham, runique, cinghalais, syriaque, thaana, syllabes autochtones canadiennes unifiées et syllabes yi ajoutées, ainsi qu'un ensemble de motifs braille.
3.1 Modèle:Date 94140 Deseret, gothique et vieil italique ajoutés, ainsi que des ensembles de symboles pour la musique occidentale et la musique byzantine, et 42 711 idéogrammes unifiés CJC supplémentaires
3.2 Modèle:Date 95156 Buhid, Hanunó'o, Tagalog et Tagbanwa ajoutés
4.0 Modèle:Date 96382 Syllabaire chypriote, Limbu, Linéaire B, Osmanya, Shavian, Tai Le et Ugaritic ajoutés, ainsi que des symboles Hexagram
4.1 Modèle:Date 97655 Buginese, Glagolitic, Kharoshthi, New Tai Lue, Old Persian, Syloti Nagri et Tifinagh ont été ajoutés, et le copte a été désunifié du grec. Des chiffres grecs anciens et des symboles musicaux ont également été ajoutés.
5.0 Modèle:Date 99024 Balinais, cunéiforme, N'Ko, Phags-pa et phénicien ajoutés.
5.1 Modèle:Date 100648 Carian, Cham, Kayah Li, Lepcha, Lycian, Lydian, Ol Chiki, Rejang, Saurashtra, Sundanais et Vai ont été ajoutés, ainsi que des ensembles de symboles pour le disque Phaistos, les tuiles Mahjong et les tuiles Domino. Il y avait aussi des ajouts importants pour le birman, des ajouts de lettres et d'abréviations Scribal utilisées dans les manuscrits médiévaux, et l'ajout de Capital ẞ.
5.2 Modèle:Date 107296 Avestan, Bamum, hiéroglyphes égyptiens (l'ensemble Gardiner, comprenant 1071 caractères), araméen impérial, inscriptional pahlavi, inscriptional parthe, javanais, kaithi, lisu, meetei mayek, vieux sud-arabe, vieux turc, samaritain, tai tham et tai viet ajoutés. 4 149 idéogrammes unifiés CJK supplémentaires (CJK-C), ainsi qu'un Jamo étendu pour le vieux Hangul et des caractères pour le sanskrit védique.
6.0 Modèle:Date 109384 Batak, Brahmi, Mandaic, symboles de cartes à jouer, symboles de transport et de carte, symboles alchimiques, émoticônes et emojis. 222 idéogrammes unifiés CJC supplémentaires (CJK-D) ajoutés.
6.1 Modèle:Date 110116 Chakma, cursive méroïtique, hiéroglyphes méroïtiques, Miao, Sharada, Sora Sompeng et Takri.
6.2 janvier 2012 110117 Le signe de la lire turque a été ajouté.
6.3 septembre 2013 110122 5 caractères de formatage bidirectionnel ont été ajoutés
7.0 Modèle:Date 112956 Bassa Vah , Albanais du Caucase , Duployan , Elbasan , Grantha , Khojki , Khudawadi , Linéaire A , Mahajani , Manichéen , Mende Kikakui , Modi , Mro , Nabatéen , Vieux Arabe du Nord , Vieux Permic , Pahawh Hmong , Palmyrène , Pau Cin Hau , Psautier Pahlavi , Siddham, Tirhuta, Warang Citi et Dingbats.
8.0 Modèle:Date 120672 Ahom, hiéroglyphes anatoliens, Hatran, Multani, vieux hongrois, SignWriting, 5 771 idéogrammes unifiés CJK, un ensemble de lettres minuscules pour Cherokee et cinq modificateurs de teint emoji.
9.0 Modèle:Date 128172 Adlam, Bhaiksuki, Marchen, Newa, Osage, Tangut et 72 emoji.
10.0 Modèle:Date 136690 Place Zanabazar, Soyombo, Masaram Gondi, Nüshu, hentaigana (hiragana non standard), 7 494 idéogrammes unifiés CJC, 56 emoji et symbole bitcoin.
11.0 Modèle:Date 137374 Dogra, lettres majuscules géorgiennes Mtavruli, Gunjala Gondi, Hanifi Rohingya, nombres indiens Siyaq, Makasar, Medefaidrin, anciens sogdiens et sogdiens, chiffres mayas, 5 idéogrammes unifiés CJK urgents, symboles pour xiangqi (échecs chinois) et classement par étoiles, et 145 emoji .
12.0 Modèle:Date 137928 Elymaic, Nandinagari, Nyiakeng Puachue Hmong, Wancho, ajouts d'écritures Miao pour plusieurs langues Miao et Yi de Chine, lettres minuscules hiragana et katakana pour l'écriture du japonais archaïque, fractions et symboles historiques tamouls, lettres lao pour le pali, lettres latines pour la translittération égyptologique et ougaritique , commandes de format hiéroglyphe et 61 emoji.
12.1 mai 2019 137929 Ce caractère, ㋿, a été ajouté en tant que forme de ligature carrée de l'ère Reiwa
13.0 Modèle:Date 143859 Chorasmian, Dives Akuru, petite écriture khitane, yezidi, 4 969 idéogrammes unifiés CJK ajoutés (dont 4 939 dans Ext. G), ajouts d'écriture arabe utilisés pour écrire le haoussa, le wolof et d'autres langues en Afrique et autres ajouts utilisés pour écrire l'hindko et le pendjabi en Pakistan, ajouts Bopomofo utilisés pour le cantonais, symboles de licence Creative Commons, caractères graphiques pour la compatibilité avec le télétexte et les systèmes informatiques domestiques des années 1970 et 1980, et 55 emoji.
14.0 Modèle:Date 144697 Toto, Cypro-Minoan, Vithkuqi, Old Uyghur, Tangsa, ajouts d'écritures latines aux blocs SMP (Ext-F, Ext-G) pour une utilisation dans l'API étendue, ajouts d'écritures arabes pour une utilisation dans les langues à travers l'Afrique et en Iran, Pakistan, Malaisie , Indonésie, Java et Bosnie, et pour écrire des titres honorifiques, des ajouts à usage coranique, d'autres ajouts pour prendre en charge les langues en Amérique du Nord, aux Philippines, en Inde et en Mongolie, l'ajout du symbole monétaire kirghize som, la prise en charge de la notation musicale Znamenny et 37 émojis.
15.0 Modèle:Date 149186 Kawi et Mundari, plusieurs nouveaux personnages, dont 20 emojis, 4 192 idéogrammes CJC et des caractères de contrôle pour les hiéroglyphes égyptiens.

Couches d'Unicode

Unicode est défini suivant un modèle en couches (Note technique Unicode no 17<ref>{{#invoke:Langue|indicationDeLangue}} Modèle:Langue.</ref>). Les autres normes ne faisaient typiquement pas de distinction entre le jeu de caractères et la représentation physique. Les couches sont ici présentées en partant de la plus haute (la plus éloignée de la machine).

Répertoire des caractères abstraits (Modèle:Langue)

La couche la plus élevée est la définition du jeu de caractères abstraits. Par exemple, Latin-1 a un jeu de Modèle:Nombre quand Unicode et l'Modèle:Nobr normalisent conjointement actuellement près de Modèle:Nombre dans un répertoire commun.

En outre, Unicode et l'ISO/CEO 10646 affectent une dénomination commune et normalisée à chacun de ces caractères. La liste des caractères abstraits avec leurs noms normalisés constituent la couche commune de présentation de la norme Modèle:Nobr et du standard Unicode. Par exemple, le caractère Ç est nommé « lettre majuscule latine c cédille ». Cette définition est totalement identique à celle de l'Modèle:Nobr 10646, qui approuve toute extension du répertoire. Unicode ne reprend dans le texte de sa norme que les noms normatifs en anglais, mais la norme Modèle:Nobr est publiée en deux langues également normatives. Ainsi les noms en anglais et en français sont tous deux normalisés par l'ISO.

Dans les faits, toute extension du répertoire se fait aujourd'hui conjointement entre le groupe de travail responsable de l'Modèle:Nobr (JTC1/SC2/WG2, dont les membres votants sont uniquement des autorités de normalisation nationales des pays participants, ou leur représentant officiel), et le Comité technique Unicode UTC (dont les membres votants peuvent être n'importe quelle organisation privée ou d'intérêt public, ou même un gouvernement, qui a adhéré et paye une redevance annuelle permettant de participer à ces décisions).

Jeu de caractères codés (Modèle:Langue)

La normale ISO/CEI 10646 ajoute à la table précédente un numéro associé à chaque caractère abstrait du répertoire commun, lequel est repris dans le standard Unicode. Notons bien qu'il ne s'agit pas d'une représentation en mémoire, juste d'un nombre entier, appelé point de code.

L'espace de codage de ces nombres est divisé en Modèle:Nombre de Modèle:Nombre : ces zones sont appelées « plans de code ». Les plans de code sont eux-mêmes divisés en « colonnes de code » comprenant Modèle:Nombre, qui sont (autant que possible) l'unité minimale de réservation dans le répertoire pour des groupes de caractères (assignés ou à venir) souvent utilisés conjointement dans une même écriture ou ayant des propriétés de base communes).

Chaque point de code est noté « U+ » suivi(s) de Modèle:Unité/2 en hexadécimal :

Ainsi le caractère nommé « Lettre majuscule latine c cédille » (Ç) a le numéro U+00C7. Il appartient au premier plan.

En principe tous les points de code entre U+0000 et U+10FFFF sont disponibles, mais certaines plages sont perpétuellement réservées à des usages particuliers, notamment une zone d'indirection exclue afin de permettre le codage UTF-16 (Modèle:Cf. infra), les zones à usage privé, ainsi que quelques régions (dont les deux derniers points de code de chacun des plans de code, par exemple U+FFFE ou U+FFFF) contenant des « non-caractères » et dont l'usage est interdit dans un échange de données conforme. Les autres points de code sont soit déjà affectés à des caractères, soit réservés par l'ISO/CEI 10646 pour une normalisation future.

Zone à usage privé : l'ISO/CEI 10646 et Unicode ont assigné de nombreux points de code à des caractères valides, mais dont la sémantique est inconnue car d'usage privé (par exemple les deux derniers plans entre U+F0000 et U+10FFFF sont entièrement destinés à cet usage, hormis les deux points de code à la fin de chaque plan qui sont des non-caractères interdits dans un texte conforme).

Là encore, la standardisation du codage, c'est-à-dire l'affectation des points de codes aux caractères du répertoire commun est une décision conjointe partagée entre les normes Unicode et Modèle:Nobr. Tous les caractères du répertoire disposent d'un point de code unique (même si pour certaines langues ou pour Unicode certains caractères sont considérés comme équivalents, avec l'un d'eux désigné comme standard et recommandé et les autres présents pour des raisons de compatibilité ascendante, par exemple avec d'anciennes normes ou avec des standards encore fréquemment utilisés).

On peut noter que si le répertoire des caractères est extensible, il est limité par la borne supérieure de l'espace de codage : U+10FFFF. La grande majorité des points de code possibles n'est encore associée à aucun caractère particulier, mais peut l'être à tout moment.

Aussi ces points de code encore libres ne sont pas considérés comme non valides, mais représentent bien des caractères abstraits (non encore spécifiés, et réservés jusqu'à nouvel ordre). Ces caractères abstraits (de même que les caractères à usage privé) complètent le jeu de caractères codés du répertoire standardisé pour former un jeu unique, dit « jeu de caractères codés universel » (Modèle:Langue, souvent abrégé en UCS), qui contient tous les jeux de caractères codés des répertoires de chacune des versions passées, présentes et futures de l'Modèle:Nobr et ceux d'Unicode (depuis la Modèle:Nobr uniquement).

Formalisme de codage des caractères (Modèle:Langue)

La couche suivante spécifie une représentation physique (en mémoire, sur disque…) de chacun des caractères abstraits : quelle unité de codage (Modèle:Langue), ou codet, va représenter un caractère ou plus exactement un point de code : octet, Modèle:Lien (mot de Modèle:Nombre) ou Modèle:Lien (mot de Modèle:Nombre).

Il peut exister (et il existe) plusieurs de ces formalismes. Un formalisme particulier doit préciser la taille de l'unité de codage et indiquer de quelle façon le nombre entier représentant un point de code est représenté en une suite d'unités de codage − et inversement, c'est-à-dire comment retrouver le point de code étant donné une suite d'unités de codage.

Mécanisme de sérialisation des caractères (Modèle:Langue)

Cette couche s'occupe de sérialiser les suites d'unités de codage définies par la couche précédente en suites d'octets. C'est ici que se choisit l'ordre des octets entre les ordres gros-boutien (octet le plus significatif d'abord) et petit-boutien (octet le moins significatif d'abord).

C'est également à cette étape qu'il est possible d'ajouter un indicateur d'ordre des octets (ou BOM, pour Modèle:Langue), qui permet d'indiquer en début de fichier ou de flot de données s'il est en gros-boutien ou en petit-boutien. Dans le monde Internet, on l'utilise rarement, en préférant un marquage explicite (« charset=UTF-16BE » en MIME, par exemple, pour indiquer un flot de données gros-boutien, où BE signifie Modèle:Langue).

Surcodage de transfert (Modèle:Langue)

À ce niveau peuvent intervenir les mécanismes de compression ou de chiffrement. Il peut aussi y avoir également des surcodages, notamment au sein des protocoles MIME et HTTP qui les utilisent presque partout, mais aussi pour le LDAP, qui spécifient par exemple que les chaînes Unicode doivent être codées en UTF-8 puis surcodées en Base64 (ou avec d'autres formats d'échappement) et comment indiquer ces options de surcodage au sein des données échangées par ces applications.

Ces compressions, chiffrements et surcodages, le plus souvent nécessaires et adaptés (et souvent standardisés) à divers protocoles pour la sécurisation et l'encapsulation correcte du texte codé et transporté (ou stocké), ne font partie ni standard Unicode, ni de la norme Modèle:Nobr.

Limite de l'octet

Pour s'affranchir des contraintes rigides des normes précédentes (une suite de bits, une représentation), Unicode sépare dorénavant d'une part la définition du jeu de caractères (liste des caractères par leur nom) et leur index, le point de code, de celle du codage. Ainsi, on ne peut donc pas parler de la taille d'un caractère Unicode, car elle dépend du codage choisi, et celui-ci peut donc varier à volonté. En pratique, UTF-8 est très utilisé dans les pays occidentaux.

Là où l'ASCII utilise Modèle:Nombre et Modèle:Nobr Modèle:Nombre (comme la plupart des pages de codes nationales), Unicode, qui rassemble les caractères de chaque page de code, avait besoin d'utiliser plus que les Modèle:Nombre d'un octet. La limite fut dans un premier temps fixée à Modèle:Nombre pour les premières versions d'Unicode, et à Modèle:Nombre pour les premières versions de la norme ISO/CEI 10646.

La limite actuelle est désormais placée entre Modèle:Unité/2 par point de code assigné aux caractères standardisés dans les deux normes, désormais mutuellement compatibles :

  • Le groupe de travail international de l'ISO standardise l'assignation des points de code aux caractères, leur nom officiel et réserve les blocs de points de code utilisés par chaque écriture ou groupe d'écritures. Il documente aussi une représentation graphique possible (indicative) pour chaque caractère (cette représentation graphique étant si possible non ambiguë grâce au placement des caractères standardisés dans les blocs de code appropriés pour un nombre limité d'écritures).
  • Le groupe de travail du Consortium Unicode normalise plus précisément (dans la norme Unicode) leur sémantique pour les traitements automatisés grâce aux tables de propriétés des caractères, et la mise au point d'algorithmes standards utilisant ces propriétés.
  • Les deux organismes de normalisation collaborent pour synchroniser en permanence leur répertoire standardisé dans des versions officielles référencées mutuellement, et travaillent ensemble pour les amendements (les versions ne devenant officielles qu'une fois que les deux organismes ont chacun approuvé et complètement défini les additions de nouveaux caractères).
  • En pratique, pour la plupart des développeurs d'applications, la norme Modèle:Nobr apparaît comme un sous-ensemble de la norme Unicode plus complète, mais dispose des mêmes points de code pour exactement le même jeu de caractères que ceux de la norme Unicode (c'est pourquoi la norme Unicode est plus connue car plus appropriée pour les traitements informatisés, ainsi que consultable gratuitement sur Internet).

Modèle:Langue (UTF)

Unicode et Modèle:Nobr acceptent plusieurs formes de transformation universelle pour représenter un point de code valide. Citons :

Le nombre après UTF représente le nombre minimal de bits des codets avec lesquels un point de code valide est représenté.

Ces transformations ont été initialement créées pour la représentation interne et les schémas de codage des points de code de la norme Modèle:Nobr, qui au départ pouvait définir des points de code sur Modèle:Nombre. Depuis, la norme Modèle:Nobr a été amendée, afin que les trois formes soient totalement compatibles entre elles et permettent de coder tous les points de code (car UTF-16 ne permet de représenter que les points de code des Modèle:Nombre plans).

Unicode a standardisé également de façon très stricte ces trois formes de transformation de tous les points de code valides (U+0000 à U+D7FF et U+E000 à U+10FFFF) et uniquement eux, que ce soit pour représenter du texte sous forme de suites de points de code, ou des points de code assignés aux caractères valides, ou réservés, ou assignés à des non-caractères. Les points de code assignés aux demi-zones (U+D800 à U+DFFF), utilisés uniquement en UTF-16, sont invalides isolément puisqu'il servent à la représentation, par un couple de Modèle:Nombre de Modèle:Nombre, des points de code des Modèle:Nombre supplémentaires.

UTF-8

Modèle:Article détaillé L'UTF-8, spécifié dans le Modèle:RFC, est le plus commun pour les applications Unix et Internet. Son codage de taille variable lui permet d'être en moyenne moins coûteux en occupation mémoire (pour les langues à alphabet latin). Mais cela ralentit nettement les opérations où interviennent des extractions de sous-chaînes dans certains langages qui indexent des chaînes par des entiers (exemple = "815e caractère de la chaîne"), car il faut compter les caractères depuis le début de la chaîne pour savoir où se trouve le premier caractère à extraire.

L'UTF-8 assure aussi, et c'est son principal avantage, une compatibilité avec les manipulations simples de chaînes en ASCII dans les langages de programmation. Ainsi, les programmes écrits en C peuvent souvent fonctionner sans modification.

Initialement, l'UTF-8 pouvait coder n'importe quel point de code entre U+0000 et U+7FFFFFFF (donc jusqu'à Modèle:Nombre). Cet usage est déprécié et la norme Modèle:Nobr a été amendée pour ne plus supporter que les points de code valides des Modèle:Nombre plans, sauf ceux de la demi-zone correspondant aux codets utilisés en UTF-16 pour la représentation sur deux codets des points de code des Modèle:Nombre supplémentaires. Aussi les séquences les plus longues en UTF-8 nécessitent au maximum Modèle:Unité, au lieu de 6 précédemment. De plus, UTF-8 a été amendé d'abord par Unicode puis par l'Modèle:Nobr pour ne plus accepter que la représentation la plus courte de chaque point de code (unicité du codage). Le fait de pouvoir représenter de plusieurs façons différentes un même caractère posait des problèmes de sécurité, car le pirate pouvait contourner par une écriture différente une forme "filtrée".

Son avantage sur l'UTF-16 (et l'UTF-32) est que les différences d'ordonnancement des octets composant un mot (Modèle:Langue) ne posent pas de problème dans un réseau de systèmes hétérogènes ; ainsi, cette transformation est utilisée aujourd'hui par la plupart des protocoles d'échange standardisés.

D'autre part, l'UTF-8 est totalement compatible pour la transmission de textes par des protocoles basés sur le jeu de caractères ASCII, ou peut être rendu compatible (au prix d'une transformation sur plusieurs octets des caractères non-ASCII) avec les protocoles d'échange supportant les jeux de caractères codés sur Modèle:Nombre (qu'ils soient basés sur Modèle:Nobr ou de nombreux autres jeux de caractères codés sur Modèle:Nombre définis par des normes nationales ou des systèmes propriétaires particuliers).

Son principal défaut est le codage de longueur très variable (Modèle:Unité pour les points de code assignés aux caractères ASCII–Modèle:Nobr, Modèle:Unité/2 pour les autres points de code), même si l'auto-synchronisation propre à l'encodage UTF-8 permet de déterminer le début d'une séquence à partir d'une position aléatoire (en effectuant au plus Modèle:Nombre supplémentaires des codets qui précèdent). Cependant, cet encodage n'est pas conçu pour faciliter le traitement des chaînes de caractères : on lui préfère alors souvent l'UTF-16, parfois l'UTF-32 (gourmand en mémoire).

Dérivés
  • Certains programmes (par exemple, la base de données Oracle) représentant en interne leurs données Unicode au format UTF-16 ont (ou ont connu) un défaut de conversion vers UTF-8 : un caractère compris entre U+10000 et U+10FFFF, stocké sur deux mots de Modèle:Unité, se retrouve converti en UTF-8 comme étant une suite de deux caractères Unicode. Cela a amené la création « accidentelle » du CESU-8 et a pour avantage de faciliter l'usage d'Unicode sur des plateformes Modèle:Unité.
  • Le caractère Unicode nul U+0000 est codé en UTF-8 sous forme d'un unique octet nul 0x00. Selon le standard Unicode, ce caractère n'a aucune signification particulière<ref>{{#invoke:Langue|indicationDeLangue}} Modèle:LangueModèle:Pdf - Unicode, Inc., Modèle:P..</ref> ; toutefois (pour des raisons conceptuelles historiques), les bibliothèques de traitement de chaînes du langage C considèrent ce caractère de contrôle comme une fin de chaîne, Modèle:Refnec. Sous la plateforme Java, la version « {{#invoke:Langue|indicationDeLangue}} Modified UTF-8 » est née en reprenant l'avantage de la portabilité « Modèle:Nombre » du CESU-8 et en y ajoutant la possibilité d’encoder U+0000 sous la séquence 0xC0 0x80 (normalement interdite en UTF-8<ref>Les séquences UTF-8 doivent être les plus courtes possibles. Cette restriction doit être vérifiée pour éviter certaines failles de sécurité, du type « /../ » – se reporter aux détails dans la section « Inconvénients » de l'article UTF-8.</ref>) : en échangeant de la sorte avec les bibliothèques C natives de la plateforme supportée, la plateforme peut gérer facilement tous les textes Unicode valides ainsi que les fichiers de classes compilées (format alternatif portable, indépendant de l’Modèle:Langue et de la taille des mots).

UTF-16

Modèle:Article détaillé L'UTF-16 est un bon compromis lorsque la place mémoire n'est pas trop restreinte, car la grande majorité des caractères Unicode assignés pour les écritures des langues modernes (dont les caractères les plus fréquemment utilisés) le sont dans le plan multilingue de base et peuvent donc être représentés sur Modèle:Unité. La version française de l'Modèle:Nobr nomme ces mots de Modèle:Unité des « seizets », mais la version internationale les décrit cependant bien comme de classiques mots de Modèle:Unité composés de deux octets, et soumis aux règles usuelles de boutisme.

C'est notamment le codage qu'utilise la plateforme Java en interne, ainsi que Windows pour ses API compatibles Unicode (avec le type wchar).

Certains cadres légaux, tels le Modèle:Nobr utilisé en Chine, peuvent exiger la prise en charge des plans supplémentaires, ceux-ci contenant notamment des caractères présents dans les noms propres.

Codage UTF-16
Haut \ Bas 0xDC00 0xDC01 0xDFFF
0xD800 U+10000 U+10001 U+103FF
0xD801 U+10400 U+10401 U+107FF
0xDBFF U+10FC00 U+10FC01 U+10FFFF

Les points de code des seize plans supplémentaires nécessitent une transformation sur deux mots de Modèle:Unité :

  • on soustrait 0x10000 au point de code, ce qui laisse un nombre de Modèle:Unité dans l'intervalle de 0 à 0xFFFFF ;
  • les Modèle:Nombre de poids fort (un nombre entre 0 et 0x3FF) sont additionnés à 0xD800, et donnent la première unité de code dans la demi-zone haute (0xD800 à 0xDBFF) ;
  • les Modèle:Nombre de poids faible (un nombre entre 0 et 0x3FF) sont additionnés à 0xDC00, et donnent la seconde unité de code dans la demi-zone basse (0xDC00 à 0xDFFF) ;

Il est possible de déterminer le début de la séquence de codage à partir d'un point quelconque d'un texte représenté en UTF-16 en effectuant au maximum une lecture supplémentaire, uniquement si ce codet est dans la demi-zone basse. Cette forme est plus économique et plus facile à traiter rapidement que l'UTF-8 pour la représentation de textes contenant peu de caractères ASCII (U+0000 à U+007F).

Comme la plupart des caractères couramment usités résident dans le plan de base, l'encodage des plans supplémentaires a longtemps été peu testé dans les logiciels, conduisant à des bogues ou des problèmes de sécurité même dans des logiciels largement diffusés, par exemple en supposant à tort qu'il soit sain de découper ou de tronquer une chaîne entre deux unités de code quelconque (ce qui n'est pas le cas avec UTF-16, pas plus qu'avec UTF-8, ni même avec tous les autres codages multi-octets dont les codages historiques d'avant Unicode/ISO/CEI 10646)<ref>Modèle:Lien web.</ref>.

Toutefois, cette transformation possède deux schémas de codage incompatibles qui dépendent de l'ordonnancement des octets dans la représentation d'entiers sur Modèle:Unité. Pour résoudre cette ambiguïté et permettre la transmission entre systèmes hétérogènes, il est nécessaire d'adjoindre une information indiquant le schéma de codage utilisé (UTF-16BE ou UTF-16LE), ou bien de préfixer le texte codé avec la représentation du point de code valide U+FEFF (assigné au caractère « espace insécable de largeur nulle », un caractère aujourd'hui réservé à ce seul usage en tant que marqueur d'ordonnancement des octets), puisque le point de code « renversé » U+FFFE valide est un non-caractère, interdit dans les textes conformes à Unicode et Modèle:Nobr.

L'autre défaut d'UTF-16 est qu'un texte transformé avec lui et transmis avec l'un ou l'autre des deux schémas de codage contient un grand nombre d'octets nuls ou ayant une valeur en conflit avec les valeurs d'octets réservées par certains protocoles d'échange : le principal usage d'UTF-16 est dans le traitement en mémoire au sein des logiciels (également dans le stockage de métadonnées de certains systèmes de fichiers, et dans certaines bases de données où il peut être plus compact que l'UTF-8, notamment pour les textes asiatiques), le codage UTF-8 lui étant préféré pour les échanges sur les réseaux (et même dont la prise en charge est hautement recommandée voire maintenant exigée pour les protocoles du web de l'IETF, la prise en charge de l'UTF-16 et ses variantes dans ces protocoles restant facultative et en pratique très peu utilisée, d'autant que l'avantage relatif de compacité de l'UTF-16 disparaissant avec l'emploi fréquent de la compression de données, maintenant bien prise en charge dans de nombreux protocoles Internet).

UTF-32

Modèle:Article détaillé L'UTF-32 est utilisé lorsque la place mémoire n'est pas un problème et que l'on a besoin d'avoir accès à des caractères de manière directe et sans changement de taille (hiéroglyphes égyptiens).

L'avantage de cette transformation standardisée est que tous les codets ont la même taille. Il n'est donc pas nécessaire de lire des codets supplémentaires pour déterminer le début de la représentation d'un point de code.

Toutefois, ce format est particulièrement peu économique (y compris en mémoire) puisqu'il « gaspille » inutilement au moins un octet (toujours nul) par caractère. La taille en mémoire d'un texte joue négativement sur les performances puisque cela nécessite plus de lectures et écritures sur disque en cas de saturation de la mémoire vive, et que cela diminue aussi les performances du cache mémoire des processeurs.

Pour les textes écrits dans les langues modernes actuelles (hormis certains caractères rares du plan idéographique supplémentaire) et n'utilisant donc que les points de code du plan multilingue de base, cette transformation double la quantité mémoire nécessaire par rapport à l'UTF-16.

Comme l'UTF-16, l'UTF-32 possède plusieurs schémas de codage dépendant de l'ordonnancement des octets composant un entier de plus de Modèle:Nombre (deux schémas de codage de l'UTF-32 sont standardisés, UTF-32BE et UTF-32LE). Il est donc aussi nécessaire de préciser ce schéma de codage, ou de le déterminer en préfixant le texte par la représentation en UTF-32 du point de code U+FEFF. Comme l'UTF-16, la présence d'octets nuls dans les schémas de codage standardisés de l'UTF-32 le rend incompatible avec de nombreux protocoles d'échange entre systèmes hétérogènes.

Aussi ce format n'est utilisé le plus souvent que très localement pour certains traitements en tant que forme intermédiaire plus facile à manipuler, et on lui préfère souvent la transformation UTF-16 souvent plus performante pour traiter et stocker des quantités importantes de textes, la conversion entre les deux étant très simple à réaliser, et très peu coûteuse en termes de complexité de traitement.

En fait, de très nombreuses bibliothèques de traitement de textes sont écrites uniquement avec l'UTF-16 et sont plus performantes qu'en UTF-32, même lorsque les textes contiennent des caractères des plans supplémentaires (car ce cas de figure reste rare dans la très grande majorité des cas).

On notera toutefois que la transformation en UTF-32 utilise des codets sur Modèle:Nombre, dont de très nombreuses valeurs peuvent ne représenter aucun point de code valide (valeurs hors des deux intervalles représentant les points de code valides U+0000 à U+D7FF et U+E000 à U+10FFFF), donc aucun caractère valide ou réservé (toute information qui y serait contenue ne peut donc pas être du texte au sens d'Unicode). La transmission de textes utilisant ces valeurs invalides de codets dans un des schémas de codage standardisés de l'UTF-32 est interdite pour tout système conforme à Unicode (il faut utiliser plutôt les points de code à usage privé), puisqu'il sera impossible de les représenter dans une autre transformation UTF avec lesquelles les trois UTF standardisées sont bijectivement compatibles.

Norme chinoise GB 18030

Modèle:Article détaillé Il s'agit d'une transformation de l'Unicode qui n'est pas définie par le Consortium Unicode, mais par l'administration de normalisation en Chine, où son support est obligatoire dans les applications. Historiquement c'était un jeu de caractères codé, qui a été étendu pour prendre en charge l'intégralité du répertoire UCS par une transformation algorithmique complétant une large table de correspondance d'un codage à l'autre.

Polices de caractères Unicode

Affirmer qu'Unicode code des caractères revient à affirmer qu'il attribue un numéro à des symboles abstraits, selon un principe de codage logique. Unicode ne code en revanche pas les représentations graphiques des caractères, les glyphes. Il n'y a donc pas une bijection entre la représentation du caractère et son numéro, puisque toutes les variantes graphiques de style sont unifiées.

De plus, contrairement à une police ASCII ou latin-1 classique, la sélection d'un glyphe par un code n'est pas unique et est souvent contextuelle, et peut aussi afficher le même glyphe pour des codes différents. Ainsi, le caractère français « é » peut être décrit de deux manières : soit en utilisant directement le numéro correspondant au « é », soit en faisant suivre le numéro du « e » par celui de l'accent aigu sans chasse. Quelle que soit l'option choisie, le même glyphe sera affiché. On dira du premier caractère qu'il est précomposé, du second que c'est une composition (deux caractères forment un seul glyphe composé des deux). Ceci est autorisé et même hautement recommandé car les différentes formes de codage sont classées par Unicode comme « canoniquement équivalentes », ce qui signifie que deux formes de codage équivalentes devraient être traitées de façon identique.

De nombreux caractères composites sont dans ce cas et peuvent être codés de ces deux manières (ou plus, certains caractères composés pouvant être décomposés de plusieurs façons, notamment quand ils comportent plusieurs signes diacritiques). Le plus souvent, le caractère précomposé est préférable pour le codage du texte, si celui-ci existe (c'est le cas pour le grec polytonique, par exemple, lequel, codé en décomposition, peut ne pas être satisfaisant graphiquement : selon les polices de caractères, les différents constituants du glyphe étant parfois mal disposés et peu lisibles). Toutefois, tous les caractères composites ne disposent pas d'un point de code unique pour leur forme précomposée.

De même, certains systèmes d'écriture, comme la devanāgarī, le persan ou l'arabe, nécessitent un traitement complexe des ligatures : les graphèmes changent de forme en fonction de leur position ou de leurs voisins (voir Variante contextuelle et Lettre conjointe). La sélection du glyphe correct nécessite un traitement permettant de déterminer la forme contextuelle à sélectionner dans la police, alors même que toutes les formes contextuelles sont codées de façon identique en Unicode.

Pour ces raisons, une police Unicode doit être maniée avec prudence. Par exemple, une police comportant tous les glyphes existants ne suffit pas. Il faut également que le système d'affichage (le moteur de rendu) possède les mécanismes à même de traiter les ligatures, variantes contextuelles et formes conjointes propres à certaines langues. À l'inverse, une police qui ne représente qu'une partie des caractères mais sait les afficher correctement, mérite mieux le titre de « police Unicode ». Enfin, certaines contraintes techniques des formats de polices peuvent les empêcher de supporter la totalité du répertoire. En pratique, il est impossible (en 2009) de trouver une police de caractères unique supportant l'ensemble du répertoire.

Une police de caractères Unicode est donc seulement une police permettant d'afficher directement un texte codé selon toutes les formes autorisées par Unicode, et permettant de supporter un sous-ensemble cohérent adapté à une ou plusieurs langues pour supporter une ou plusieurs écritures. Aucune police de caractère Unicode ne peut « fonctionner » seule, et le support complet de l'écriture nécessite un support de celles-ci dans un moteur de rendu, capable de détecter les formes de codage équivalentes, rechercher les formes contextuelles dans le texte et sélectionner les différents glyphes d'une police codée avec Unicode, en s'aidant au besoin de tables de correspondances incluses dans la police elle-même.

Détails techniques

Bibliothèques logicielles

La bibliothèque logicielle multiplateforme ICU permet de manipuler des données encodées avec Unicode. Un support d'Unicode spécifique à certaines plateformes est également intégré par les systèmes modernes (Java, Microsoft Windows, GNU/Linux, bibliothèques standards C/C++, Python, etc.).

Les types à utiliser pour stocker des variables Unicode, sont les suivants :

Types compatibles avec Unicode dans les langages de programmation
Langage de programmation Type pour un seul caractère Type pour tout texte
C char[4]Modèle:Note ou wchar_t[2]Modèle:Note char[] ou wchar_t[]
C++ char[4]Modèle:Note ou wchar_t[2]Modèle:Note char[] ou wchar_t[] ou std::string ou std::wstring
Java char[2] ou intModèle:Note char[] ou String
Bibliothèque ICU (pour C/C++ ou Java) UChar UChar[] ou String, UnicodeString
JavaScript ou ECMAScript charModèle:Note string
C# ou J# char string
Delphi char[4]Modèle:Note ou widechar[2] stringModèle:Note ou widestring
Python 2 unicode
Python 3 str
Go rune (=int32) string ou []byte
Swift Character String
Modèle:Références

Unicode souffre toutefois encore d'un faible support des expressions rationnelles par certains logiciels, même si des bibliothèques comme ICU et Java peuvent les supporter. Un tel support n'a pas encore été standardisé pour ECMAScript et n'est fourni qu'avec l'aide de bibliothèques créées avec le langage ou des interfaces d'interopérabilité avec d'autres systèmes (notamment avec CORBA, COM) ou langages (notamment C++ et Java).

Partitionnement

Le partitionnement à jour peut être trouvé sur le site officiel d'Unicode. Cependant, étant donné le rôle important d'Unicode actuellement (Modèle:Nobr), on décrira ici les principaux blocs de caractères. Les noms français sont les noms officiels d'Modèle:Nobr, la norme internationale bilingue qui reprend les mêmes caractères qu'Unicode. Ils sont aussi officiels que les noms anglais.

L'ancien standard Modèle:Nobr est obsolète et incompatible avec la norme Modèle:Nobr et le standard Modèle:Nobr et toutes ses versions ultérieures (dont la version 2.0 et toutes les suivantes qui sont désormais synchronisées avec les éditions de la norme ISO/CEI 10646-1 révisée, pour leur répertoire commun ainsi que les formes de codage normalisées valides, la norme ISO/CEI ayant réduit son espace de codage à ses 17 premiers plans) ; la principale incompatibilité est celle des blocs de caractères Hangul utilisés pour l'écriture de la langue coréenne qui ont changé de position dans Unicode 1.1 pour s'aligner avec la norme ISO, et dont les anciens points de code ont depuis été assignés à d'autres blocs. La table ci-dessous est compatible avec Modèle:Nobr (toutes versions) et Modèle:Nobr (ou ultérieur).

N.b. La casse des noms de bloc n’est pas normative. « Latin de base » est donc équivalent à « LATIN DE BASE ».

Dans les tableaux suivants, tout nom de bloc ayant une note ramenant à un PDF officiel Unicode signifie que la page Wikipédia associée à ce bloc est inexistante ou erronée.

Modèle:Début de colonnes Langues écrites : Modèle:Début de bloc solidaire Alphabétique Modèle:Légende/Début Modèle:Légende Modèle:Légende Modèle:Légende Modèle:Légende Modèle:Légende Modèle:Légende/Fin Modèle:Fin de bloc solidaire Modèle:Début de bloc solidaire [L]ogographique, et [S]yllabique ou [A]lphabétique Modèle:Légende/Début Modèle:Légende Modèle:Légende Modèle:Légende Modèle:Légende Modèle:Légende/Fin Modèle:Fin de bloc solidaire Modèle:Début de bloc solidaire Consonantique (abjads sémitiques) Modèle:Légende/Début Modèle:Légende Modèle:Légende Modèle:Légende/Fin Modèle:Fin de bloc solidaire Modèle:Début de bloc solidaire Alphasyllabique (abugidas) Modèle:Légende/Début Modèle:Légende Modèle:Légende Modèle:Légende Modèle:Légende Modèle:Légende Modèle:Légende/Fin Modèle:Fin de bloc solidaire Modèle:Fin de colonnes

Plan multilingue de base (PMB, U+0000 à U+FFFF)

Points de code Nom du bloc en français PDF officiel En savoir plus
Début Fin
U+0000 U+007F Commandes C0 et latin de base Modèle:Lien web voir [[ISO/CEI 646|Modèle:Nobr]], ASCII, Alphabet latin, Caractères de contrôle Unicode
U+0080 U+00FF Commandes C1 et supplément latin ― 1 Modèle:Lien web voir [[ISO/CEI 8859|Modèle:Nobr]], [[ISO/CEI 8859-1|Modèle:Nobr]], Alphabet latin, Caractères de contrôle Unicode
U+0100 U+017F Latin étendu ― A Modèle:Lien web voir Alphabet latin
U+0180 U+024F Latin étendu ― B Modèle:Lien web
U+0250 U+02AF Latin ― supplément pour l’API Modèle:Lien web voir Alphabet latin, Alphabet phonétique international (API)
U+02B0 U+02FF Lettres modificatives avec chasse Modèle:Lien web voir Diacritique, Alphabet latin, Diacritiques de l’alphabet latin, Alphabet phonétique international
U+0300 U+036F Diacritiques Modèle:Lien web voir Diacritique, Diacritiques de l’alphabet latin, Diacritiques de l'alphabet grec, Alphabet copte, Diacritiques de l’alphabet cyrillique
U+0370 U+03FF Grec et copte Modèle:Lien web voir Alphabet grec et Alphabet copte
U+0400 U+04FF Cyrillique Modèle:Lien web voir Alphabet cyrillique
U+0500 U+052F Cyrillique ― supplément Modèle:Lien web
U+0530 U+058F Arménien Modèle:Lien web voir Alphabet arménien
U+0590 U+05FF Hébreu Modèle:Lien web voir Alphabet hébreu, Diacritique, Diacritiques de l’alphabet hébreu
U+0600 U+06FF Arabe Modèle:Lien web voir Alphabet arabe
U+0700 U+074F Syriaque Modèle:Lien web voir Syriaque
U+0750 U+077F Arabe ― supplément Modèle:Lien web voir Alphabet arabe
U+0780 U+07BF Thâna Modèle:Lien web voir Alphabet Maldivien
U+07C0 U+07FF N’ko Modèle:Lien web voir N’ko
U+0800 U+083F Samaritain Modèle:Lien web voir Alphabet samaritain
U+0840 U+085F Mandéen Modèle:Lien web voir Alphabet mandéen
U+0860 U+086F Syriaque ― supplément Modèle:Lien web voir Syriaque
U+0870 U+089F Arabe étendu B Modèle:Lien web voir Alphabet arabe, Diacritique, Diacritiques de l’alphabet arabe
U+08A0 U+08FF Arabe étendu ― A Modèle:Lien web
U+0900 U+097F Dévanâgarî Modèle:Lien web voir Dévanâgarî
U+0980 U+09FF Bengalî Modèle:Lien web voir Bengalî
U+0A00 U+0A7F Gourmoukhî Modèle:Lien web voir Gurmukhî
U+0A80 U+0AFF Goudjarâtî Modèle:Lien web voir Alphabet goudjarâtî
U+0B00 U+0B7F Oriya (ou Odia) Modèle:Lien web voir Oriya (ou Odia)
U+0B80 U+0BFF Tamoul Modèle:Lien web voir Tamoul
U+0C00 U+0C7F Télougou Modèle:Lien web voir Télougou
U+0C80 U+0CFF Kannara Modèle:Lien web voir Kannada (ou Kannara)
U+0D00 U+0D7F Malayâlam Modèle:Lien web voir Malayâlam
U+0D80 U+0DFF Singhalais (ou Singalais, Cingalais) Modèle:Lien web voir Singhalais (ou Singalais, Cingalais)
U+0E00 U+0E7F Thaï Modèle:Lien web voir Thaï
U+0E80 U+0EFF Laotien Modèle:Lien web voir Laotien
U+0F00 U+0FFF Tibétain Modèle:Lien web voir Tibétain
U+1000 U+109F Birman Modèle:Lien web voir Birman
U+10A0 U+10FF Géorgien Modèle:Lien web voir Géorgien, Alphabet géorgien
U+1100 U+11FF Hangûl ― jamos Modèle:Lien web voir Hangûl (ou Hangeul)
U+1200 U+137F Éthiopien Modèle:Lien web voir Alphasyllabaire guèze
U+1380 U+139F Éthiopien ― supplément Modèle:Lien web voir Alphasyllabaire guèze
U+13A0 U+13FF Chéroki Modèle:Lien web voir Syllabaire cherokee
U+1400 U+167F Syllabaires autochtones canadiens unifiés Modèle:Lien web voir Langues amérindiennes
U+1680 U+169F Ogham Modèle:Lien web voir Ogham
U+16A0 U+16FF Runes Modèle:Lien web voir Rune (ou futhark)
U+1700 U+171F Tagalog Modèle:Lien web voir Tagalog
U+1720 U+173F Hanounóo Modèle:Lien web voir Modèle:Lien
U+1740 U+175F Bouhide Modèle:Lien web voir Modèle:Lien
U+1760 U+177F Tagbanoua Modèle:Lien web voir Modèle:Lien
U+1780 U+17FF Khmer Modèle:Lien web voir Khmer (ou cambodgien)
U+1800 U+18AF Mongol Modèle:Lien web voir Mongol
U+18B0 U+18FF Syllabaires autochtones canadiens étendus Modèle:Lien web voir Langues amérindiennes
U+1900 U+194F Limbou Modèle:Lien web voir Limbou
U+1950 U+197F Taï-le Modèle:Lien web voir Taï-le
U+1980 U+19DF Nouveau taï lü Modèle:Lien web voir Taï lü
U+19E0 U+19FF Khmer ― symboles Modèle:Lien web voir Khmer (ou cambodgien)
U+1A00 U+1A1F Bugi (ou lontara) Modèle:Lien web voir Bugi (ou bouguinais), Écriture lontara
U+1A20 U+1AAF Taï tham Modèle:Lien web voir Modèle:Lien
U+1AB0 U+1AFF Diacritiques étendu Modèle:Lien web voir Diacritique
U+1B00 U+1B7F Balinais Modèle:Lien web voir Écriture balinaise
U+1B80 U+1BBF Soundanais Modèle:Lien web voir Soundanais, Modèle:Lien
U+1BC0 U+1BFF Batak Modèle:Lien web voir Écriture batak
U+1C00 U+1C4F Lepcha Modèle:Lien web voir Modèle:Lien
U+1C50 U+1C7F Ol tchiki Modèle:Lien web voir Alphabet santâlî (ou Ol Cemet’, Ol tchiki)
U+1C80 U+1C8F Cyrillique étendu ― C Modèle:Lien web voir Alphabet cyrillique, Slavon d'église
U+1C90 U+1CBF Géorgien étendu Modèle:Lien web voir Géorgien, Alphabet géorgien
U+1CC0 U+1CCF Soundanais - supplément Modèle:Lien web voir Soundanais, Modèle:Lien
U+1CD0 U+1CFF Extensions védiques Modèle:Lien web voir Sanskrit
U+1D00 U+1D7F Latin - supplément phonétique Modèle:Lien web voir Alphabet latin, Alphabet phonétique international
U+1D80 U+1DBF Latin - supplément phonétique étendu Modèle:Lien web
U+1DC0 U+1DFF Diacritiques - supplément Modèle:Lien web voir Diacritique
U+1E00 U+1EFF Latin étendu - supplément Modèle:Lien web voir Alphabet latin
U+1F00 U+1FFF Grec étendu Modèle:Lien web voir Alphabet grec, Diacritiques de l’alphabet grec
U+2000 U+206F Ponctuation générale Modèle:Lien web voir Ponctuation, Espace
U+2070 U+209F Exposants et indices Modèle:Lien web voir Exposant et Indice
U+20A0 U+20CF Symboles monétaires Modèle:Lien web voir Symbole monétaire
U+20D0 U+20FF Signes combinatoires pour symboles Modèle:Lien web voir Symboles mathématiques, Opérateurs mathématiques, Flèche, rotation
U+2100 U+214F Symboles de type lettre Modèle:Lien web voir Température, Symboles mathématiques, Sigles ou symboles liés au dépôt de marque
U+2150 U+218F Formes numérales Modèle:Lien web voir Numération romaine, Fraction
U+2190 U+21FF Flèches Modèle:Lien web voir Flèche
U+2200 U+22FF Opérateurs mathématiques Modèle:Lien web voir Opérateurs mathématiques
U+2300 U+23FF Signes techniques divers Modèle:Lien web voir Alphabet grec, Ponctuation, Flèche, Symboles mathématiques, Émoji
U+2400 U+243F Pictogrammes de commande Modèle:Lien web voir Modèle:Nobr, Modèle:Nobr, Modèle:Lien
U+2440 U+245F Reconnaissance optique de caractères (ROC) Modèle:Lien web voir Reconnaissance optique de caractères (ROC)
U+2460 U+24FF Alphanumériques délimités Modèle:Lien web voir Alphabet latin, Chiffres arabes
U+2500 U+257F Filets Modèle:Lien web voir Modèle:Lien, Rectangle, Filet (typographie)
U+2580 U+259F Pavés Modèle:Lien web voir Modèle:Lien, Rectangle
U+25A0 U+25FF Formes géométriques Modèle:Lien web voir Forme géométrique
U+2600 U+26FF Symboles divers Modèle:Lien web voir Symbole, Émoji, Jeu de cartes français, Échecs, Symbole de genre
U+2700 U+27BF Casseau Modèle:Lien web voir Symbole, Chiffres arabes, Ponctuation, Émoji, Opérateurs mathématiques, Flèche
U+27C0 U+27EF Symboles mathématiques divers ― A Modèle:Lien web voir Symboles mathématiques
U+27F0 U+27FF Flèches ― supplément A Modèle:Lien web voir Flèche
U+2800 U+28FF Combinaisons Braille Modèle:Lien web voir Braille
U+2900 U+297F Flèches ― supplément B Modèle:Lien web voir Flèche
U+2980 U+29FF Symboles mathématiques divers ― B Modèle:Lien web voir Symboles mathématiques
U+2A00 U+2AFF Opérateurs mathématiques ― supplément Modèle:Lien web voir Opérateurs mathématiques
U+2B00 U+2BFF Symboles et flèches divers Modèle:Lien web voir Flèche, Émoji
U+2C00 U+2C5F Glagotique Modèle:Lien web voir Alphabet glagolitique
U+2C60 U+2C7F Latin étendu ― C Modèle:Lien web voir Alphabet latin, Ouïghour
U+2C80 U+2CFF Copte Modèle:Lien web voir Alphabet copte
U+2D00 U+2D2F Géorgien ― supplément Modèle:Lien web voir Géorgien, Alphabet géorgien
U+2D30 U+2D7F Tifinagh Modèle:Lien web voir Tifinagh et Langues berbères
U+2D80 U+2DDF Éthiopien étendu Modèle:Lien web voir Alphasyllabaire guèze
U+2DE0 U+2DFF Cyrillique étendu ― A Modèle:Lien web voir Alphabet cyrillique, Diacritique, Diacritiques de l’alphabet cyrillique
U+2E00 U+2E7F Ponctuation ― supplément Modèle:Lien web voir Ponctuation
U+2E80 U+2EFF Sinogrammes ― clés CJC ― supplément Modèle:Lien web voir Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen
U+2F00 U+2FDF Sinogrammes ― clés chinoises du Kangxi Modèle:Lien web voir Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Dictionnaire de caractères de Kangxi
U+2FE0 U+2FEF Réservé ―<ref>Modèle:Lien web</ref>
U+2FF0 U+2FFF Description idéographique Modèle:Lien web voir Description idéographique
U+3000 U+303F Symboles et ponctuation CJC Modèle:Lien web voir Ponctuation, Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen
U+3040 U+309F Hiragana Modèle:Lien web voir Hiragana, Écritures du japonais, Japonais
U+30A0 U+30FF Katakana Modèle:Lien web voir Katakana, Écritures du japonais, Japonais
U+3100 U+312F Bopomofo Modèle:Lien web voir Bopomofo, Chinois, japonais, coréen et vietnamien, Sinogramme
U+3130 U+318F Hangûl ― jamos de compatibilité Modèle:Lien web voir Hangûl (ou Hangeul), Coréen
U+3190 U+319F Kanbun Modèle:Lien web voir Kanbun, Sinogramme, Écritures du japonais, Japonais
U+31A0 U+31BF Bopomofo étendu Modèle:Lien web voir Bopomofo, Sinogramme, Chinois écrit, Langues chinoises
U+31C0 U+31EF Sinogrammes ― traits CJC Modèle:Lien web voir Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen
U+31F0 U+31FF Katakana ― extension phonétique Modèle:Lien web voir Katakana, Écritures du japonais, Japonais
U+3200 U+32FF Lettres et mois CJC délimités Modèle:Lien web voir Chiffres arabes, Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen
U+3300 U+33FF Sinogrammes ― compatibilité CJC Modèle:Lien web voir Unité de mesure, Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen
U+3400 U+4DBF Sinogrammes unifiés CJC ― supplément A
Modèle:Nobr Modèle:Nobr
Modèle:Lien web voir Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen
U+4DC0 U+4DFF Hexagrammes du Classique des mutations ou Yi Jing Modèle:Lien web voir Yi Jing, Hexagramme, Chinois, japonais, coréen et vietnamien, Sinogramme
U+4E00 U+9FFF U+Idéogrammes unifiés CJC
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr
Modèle:Lien web voir Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen, Vietnamien
U+A000 U+A48F Yi ― syllabaire des Monts frais Modèle:Lien web voir Syllabaire yi
U+A490 U+A4CF Yi ― clés Modèle:Lien web
U+A4D0 U+A4FF Lissou Modèle:Lien web voir Lissou, Modèle:Lien
U+A500 U+A63F Vaï Modèle:Lien web voir Syllabaire vaï
U+A640 U+A69F Cyrillique étendu ― B Modèle:Lien web voir Alphabet cyrillique
U+A6A0 U+A6FF Bamoun Modèle:Lien web voir Écriture bamoun
U+A700 U+A71F Lettres modificatives de ton Modèle:Lien web voir Langue à tons, Langues chinoises
U+A720 U+A7FF Latin étendu ― D Modèle:Lien web voir Alphabet latin
U+A800 U+A82F Sylotî nâgrî Modèle:Lien web voir Modèle:Lien
U+A830 U+A83F Formes numériques communes indiennes Modèle:Lien web voir Inde
U+A840 U+A87F Phags-pa Modèle:Lien web voir Écriture phagpa
U+A880 U+A8DF Saurachtra Modèle:Lien web voir Modèle:Lien
U+A8E0 U+A8FF Devanâgarî étendu Modèle:Lien web voir Dévanâgarî
U+A900 U+A92F Kayah li Modèle:Lien web voir Alphabet Kayah Li
U+A930 U+A95F Rejang Modèle:Lien web voir Écriture redjang
U+A960 U+A97F Hangûl ― Jamos étendus ― A Modèle:Lien web voir Hangûl (ou Hangeul), Coréen
U+A980 U+A9DF Javanais Modèle:Lien web voir Écriture javanaise
U+A9E0 U+A9FF Birman étendu ― B Modèle:Lien web voir Birman, Écriture birmane
U+AA00 U+AA5F Cham Modèle:Lien web voir Cham
U+AA60 U+AA7F Birman étendu ― A Modèle:Lien web voir Birman, Écriture birmane
U+AA80 U+AADF Taï viêt Modèle:Lien web voir Alphabet taï viêt, Tay dam, Tay don, Modèle:Lien
U+AAE0 U+AAFF Meitei mayek étendu Modèle:Lien web voir Meitei, Écriture Meitei
U+AB00 U+AB2F Éthiopien étendu ― A Modèle:Lien web voir Alphasyllabaire guèze
U+AB30 U+AB6F Latin étendu ― E Modèle:Lien web voir Alphabet latin, Teuthonista, Alphabet d'Ascoli, Alphabet Rousselot-Gilliéron
U+AB70 U+ABBF Chéroki ― supplément Modèle:Lien web voir Syllabaire cherokee
U+ABC0 U+ABFF Meitei mayek Modèle:Lien web voir Meitei, Écriture Meitei
U+AC00 U+D7AF Hangûl ― syllabes
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr
Modèle:Lien web voir Hangûl (ou Hangeul), Coréen
U+D7B0 U+D7FF Hangûl ― Jamos étendus ― B Modèle:Lien web voir Hangûl (ou Hangeul), Coréen
U+D800 U+DBFF Demi-zone haute d’indirection Modèle:Lien web voir Demi-zone haute d’indirection
U+DC00 U+DFFF Demi-zone basse d’indirection Modèle:Lien web voir Demi-zone basse d’indirection
U+E000 U+F8FF Zone à usage privé
Modèle:Nobr Modèle:Nobr
Modèle:Lien web Aucun caractère officiellement défini
U+F900 U+FAFF Sinogrammes de compatibilité CJC Modèle:Lien web voir Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen
U+FB00 U+FB4F Formes de présentation alphabétiques Modèle:Lien web voir Alphabet latin, Alphabet hébreu, Alphabet arménien
U+FB50 U+FDFF Arabe ― formes de présentation ― A
Modèle:Nobr Modèle:Nobr Modèle:Nobr
Modèle:Lien web voir Alphabet arabe
U+FE00 U+FE0F Sélecteurs de variante Modèle:Lien web voir Modèle:Lien
U+FE10 U+FE1F Formes verticales Modèle:Lien web voir Ponctuation, Modèle:Nobr
U+FE20 U+FE2F Demi-signes combinatoires Modèle:Lien web voir Diacritique
U+FE30 U+FE4F Sinogrammes ― formes de compatibilité CJC Modèle:Lien web voir Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen
U+FE50 U+FE6F Petites variantes de forme Modèle:Lien web voir Ponctuation, GBK, Modèle:Nobr, Modèle:Lien
U+FE70 U+FEFF Arabe ― formes de présentation ― B Modèle:Lien web voir Alphabet arabe
U+FF00 U+FFEF Formes de demi et pleine chasse Modèle:Lien web voir Formes à demi et pleine chasse, Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen, ASCII, Alphabet latin
U+FFF0 U+FFFF Caractères spéciaux Modèle:Lien web voir Caractères spéciaux

Plan multilingue complémentaire (PMC, U+10000 à U+1FFFF)

Points de code Nom du bloc en français PDF officiel En savoir plus
Début Fin
U+10000 U+1007F Syllabaire linéaire B Modèle:Lien web voir Linéaire B
U+10080 U+100FF Idéogrammes du linéaire B Modèle:Lien web
U+10100 U+1013F Nombres égéens Modèle:Lien web voir Modèle:Lien
U+10140 U+1018F Nombres grecs anciens Modèle:Lien web voir Nombres grecs anciens
U+10190 U+101CF Symboles anciens Modèle:Lien web voir Unités de mesure romaines, Monnaie romaine
U+101D0 U+101FF Disque de Phaïstos Modèle:Lien web voir Disque de Phaistos
U+10200 U+1027F Réservé Modèle:Lien web
U+10280 U+1029F Lycien Modèle:Lien web voir Lycien
U+102A0 U+102DF Carien Modèle:Lien web voir Alphabet carien
U+102E0 U+102FF Nombres épactes coptes Modèle:Lien web voir Copte
U+10300 U+1032F Alphabet italique Modèle:Lien web voir Ancien alphabet italique
U+10330 U+1034F Gotique Modèle:Lien web voir Gotique
U+10350 U+1037F Ancien permien Modèle:Lien web voir Ancien alphabet permien
U+10380 U+1039F Ougaritique Modèle:Lien web voir Alphabet ougaritique
U+103A0 U+103FF Cunéiforme persépolitain Modèle:Lien web voir Vieux perse
U+10400 U+1044F Déséret Modèle:Lien web voir Alphabet déséret
U+10450 U+1047F Shavien Modèle:Lien web voir Alphabet shavien
U+10480 U+104AF Osmanya Modèle:Lien web voir Alphabet osmanya
U+104B0 U+104FF Osage Modèle:Lien web voir Osage
U+10500 U+1052F Elbasan Modèle:Lien web voir Écriture elbasan
U+10530 U+1056F Aghbanien Modèle:Lien web voir Alphabet albanien (ou aghbanien)
U+10570 U+105FF Réservé
U+10600 U+1077F Linéaire A Modèle:Lien web voir Linéaire A
U+10780 U+107FF Réservé
U+10800 U+1083F Syllabaire chypriote Modèle:Lien web voir Syllabaire chypriote
U+10840 U+1085F Araméen impérial Modèle:Lien web voir Alphabet araméen
U+10860 U+1087F Alphabet palmyrénien Modèle:Lien web voir Alphabet palmyrénien
U+10880 U+108AF Nabatéen Modèle:Lien web voir Alphabet nabatéen
U+108B0 U+108DF Réservé
U+108E0 U+108FF Hatrénien Modèle:Lien web voir Modèle:Lien
U+10900 U+1091F Phénicien Modèle:Lien web voir Alphabet phénicien
U+10920 U+1093F Lydien Modèle:Lien web voir Alphabet lydien
U+10940 U+1097F Réservé
U+10980 U+1099F Hiéroglyphes méroïtiques Modèle:Lien web voir Écriture méroïtique
U+109A0 U+109FF Méroïtique cursif Modèle:Lien web
U+10A00 U+10A5F Kharochthî Modèle:Lien web voir Alphabet kharoshthi
U+10A60 U+10A7F Sud-arabique Modèle:Lien web voir Alphabet sudarabique
U+10A80 U+10A9F Nord-arabique Modèle:Lien web voir Modèle:Lien
U+10AA0 U+10ABF Réservé
U+10AC0 U+10AFF Manichéen Modèle:Lien web voir Modèle:Lien
U+10B00 U+10B3F Avestique Modèle:Lien web voir Modèle:Lien
U+10B40 U+10B5F Parthe des inscriptions Modèle:Lien web voir Modèle:Lien
U+10B60 U+10B7F Pehlevi des inscriptions Modèle:Lien web voir Écriture pehlevi
U+10B80 U+10BAF Pehlevi des psautiers Modèle:Lien web voir Écriture pehlevi, Psautier
U+10BB0 U+10BFF Réservé
U+10C00 U+10C4F Vieux turc Modèle:Lien web voir Alphabet de l'Orkhon, Alphabet de l'Ienisseï
U+10C50 U+10C7F Réservé
U+10C80 U+10CFF Ancien hongrois Modèle:Lien web voir Runes hongroises
U+10D00 U+10E5F Réservé
U+10E60 U+10E7F Symboles numéraux rumi Modèle:Lien web voir Chiffres de Fès, Fès
U+10E80 U+10FDF Réservé
U+10FE0 U+10FFF Élymaïque Modèle:Lien web voir Modèle:Lien
U+11000 U+1107F Brahmî Modèle:Lien web voir Brahmi
U+11080 U+110CF Khaïthî Modèle:Lien web voir Khaithi
U+110D0 U+110FF Sora sompeng Modèle:Lien web voir Modèle:Lien
U+11100 U+1114F Chakma Modèle:Lien web voir Ojhapath
U+11150 U+1117F Mahâjanî Modèle:Lien web voir Modèle:Lien
U+11180 U+111DF Charada Modèle:Lien web voir Alphasyllabaire sharda
U+111E0 U+111FF Nombres archaïques singhalais Modèle:Lien web voir Singhalais
U+11200 U+1124F Khojki Modèle:Lien web voir Modèle:Lien
U+11250 U+1127F Réservé
U+11280 U+112AF Multanais Modèle:Lien web voir Modèle:Lien
U+112B0 U+112FF Khudabadi Modèle:Lien web voir Modèle:Lien
U+11300 U+1137F Grantha Modèle:Lien web voir Grantha
U+11380 U+113FF Réservé
U+11400 U+1147F Newa Modèle:Lien web voir Modèle:Lien
U+11480 U+114DF Tirhuta Modèle:Lien web voir Tirhuta
U+114E0 U+1157F Réservé
U+11580 U+115FF Siddham Modèle:Lien web voir Alphasyllabaire siddham
U+11600 U+1165F Modi Modèle:Lien web voir Alphasyllabaire modi
U+11660 U+1167F Supplément mongol Modèle:Lien web voir Mongol
U+11680 U+116CF Takrî Modèle:Lien web voir Modèle:Lien
U+116D0 U+116FF Réservé
U+11700 U+1173F Âhom Modèle:Lien web voir Alphasyllabaire âhom
U+11740 U+1189F Réservé
U+118A0 U+118FF Varang kchiti Modèle:Lien web voir Modèle:Lien
U+11900 U+1199F Réservé
U+119A0 U+119FF Nandinâgarî Modèle:Lien web voir Modèle:Lien
U+11A00 U+11A4F Zanabazar quadratique Modèle:Lien web voir Zanabazar, Mongol
U+11A50 U+11AAF Soyombo Modèle:Lien web voir Écriture soyombo
U+11AB0 U+11ABF Réservé
U+11AC0 U+11AFF Paou chin haou Modèle:Lien web voir Modèle:Lien
U+11B00 U+11BFF Réservé
U+11C00 U+11C6F Bhaiksuki Modèle:Lien web voir Modèle:Lien
U+11C70 U+11CBF Marchen Modèle:Lien web voir Zhang-zhung
U+11CC0 U+11CFF Réservé
U+11D00 U+11D5F Gondi de Masaram Modèle:Lien web voir Modèle:Lien, Gondi
U+11D60 U+11DAF Gondi de Gunjala Modèle:Lien web voir Modèle:Lien, Gondi
U+11DB0 U+11FBF Réservé
U+11FC0 U+11FFF Supplément tamoul Modèle:Lien web voir Tamoul
U+12000 U+123FF Cunéiforme Modèle:Lien web voir Cunéiforme
U+12400 U+1247F Ponctuation et nombres cunéiformes Modèle:Lien web
U+12480 U+1254F Cunéiforme des dynasties archaïques Modèle:Lien web
U+12550 U+12FFF Réservé
U+13000 U+1342F Hiéroglyphes égyptiens Modèle:Lien web voir Écriture hiéroglyphique égyptienne
U+13430 U+1343F Contrôles de formattage de hiéroglyphes égyptiens Modèle:Lien web
U+13440 U+143FF Réservé
Modèle:Nobr Modèle:Nobr
U+14400 U+1467F Hiéroglyphes anatoliens Modèle:Lien web voir Hiéroglyphes anatoliens
U+14680 U+167FF Réservé
Modèle:Nobr Modèle:Nobr Modèle:Nobr
U+16800 U+16A3F Supplément bamoun Modèle:Lien web voir Écriture bamoun
U+16A40 U+16A6F Mro Modèle:Lien web voir Mru (langue)
U+16A70 U+16ACF Réservé
U+16AD0 U+16AFF Bassa Modèle:Lien web voir Alphabet bassa
U+16B00 U+16B8F Pahawh hmong Modèle:Lien web voir Pahawh hmong
U+16B90 U+16EFF Réservé
U+16F00 U+16F9F Miao Modèle:Lien web voir Écriture miao
U+16FA0 U+16FDF Réservé
U+16FE0 U+16FFF Symboles et ponctuation idéographiques Modèle:Lien web voir Idéogramme, Écriture tangoute, Nüshu
U+17000 U+187FF Tangoute
Modèle:Nobr Modèle:Nobr
Modèle:Lien web voir Écriture tangoute
U+18800 U+18AFF Composants tangoutes Modèle:Lien web voir Écriture tangoute
U+18B00 U+1AFFF Réservé
Modèle:Nobr Modèle:Nobr Modèle:Nobr
U+1B000 U+1B0FF Supplément kana Modèle:Lien web voir Japonais, Écritures du japonais, Kana
U+1B100 U+1B12F Kana étendu A Modèle:Lien web voir Japonais, Écritures du japonais, Kana, Hentaigana
U+1B130 U+1B16F Extension petit kana Modèle:Lien web
U+1B170 U+1B2FF Nüshu Modèle:Lien web voir Nüshu
U+1B300 U+1BBFF Réservé
U+1BC00 U+1BC9F Sténographie Duployé Modèle:Lien web voir Sténographie, Émile Duployé
U+1BCA0 U+1CFFF Réservé
Modèle:Nobr Modèle:Nobr
U+1D000 U+1D0FF Symboles musicaux byzantins Modèle:Lien web voir Musique byzantine
U+1D100 U+1D1FF Symboles musicaux occidentaux Modèle:Lien web voir Musique occidentale
U+1D200 U+1D24F Notation musicale grecque ancienne Modèle:Lien web voir Musique de la Grèce antique
U+1D250 U+1D2FF Réservé
U+1D300 U+1D35F Symboles du Classique du mystère suprême Modèle:Lien web voir Modèle:Lien
U+1D360 U+1D37F Chiffres-bâtonnets chinois Modèle:Lien web voir Baguettes à calculer
U+1D380 U+1D3FF Réservé
U+1D400 U+1D7FF Symboles mathématiques alphanumériques Modèle:Lien web voir Symboles mathématiques, Alphabet latin, Chiffres arabes
U+1D800 U+1DAAF Écriture des signes de Sutton Modèle:Lien web voir Écriture des signes
U+1DAB0 U+1DFFF Réservé
U+1E000 U+1E02F Supplément glagolitique Modèle:Lien web voir Alphabet glagolitique
U+1E030 U+1E0FF Réservé
U+1E100 U+1E14F Nyiakeng puachue hmong Modèle:Lien web voir Modèle:Lien
U+1E150 U+1E2DF Réservé
U+1E2C0 U+1E2FF Wancho Modèle:Lien web voir Wancho
U+1E300 U+1E7FF Réservé
U+1E800 U+1E8DF Kikakui mendé Modèle:Lien web voir Kikakui
U+1E8E0 U+1E8FF Réservé
U+1E900 U+1E95F Adlam Modèle:Lien web voir Alphabet adlam
U+1E960 U+1ECFF Réservé
U+1ED00 U+1ED4F Chiffres syaq Modèle:Lien web
U+1ED50 U+1ECFF Réservé
U+1EE00 U+1EEFF Symboles mathématiques alphabétiques arabes Modèle:Lien web voir Symboles mathématiques, Mathématiques arabes
U+1EF00 U+1EFFF Réservé
U+1F000 U+1F02F Pièces de mah-jong Modèle:Lien web voir Mah-jong
U+1F030 U+1F09F Dominos Modèle:Lien web voir Dominos
U+1F0A0 U+1F0FF Cartes à jouer Modèle:Lien web voir Cartes à jouer
U+1F100 U+1F1FF Supplément alphanumérique cerclé Modèle:Lien web voir Modèle:Lien
U+1F200 U+1F2FF Supplément idéographique cerclé Modèle:Lien web
U+1F300 U+1F5FF Divers symboles et pictogrammes Modèle:Lien web voir Pictogramme, Émoji
U+1F600 U+1F64F Émoticônes Modèle:Lien web voir Émoticône, Émoji
U+1F650 U+1F67F Casseau ornemental Modèle:Lien web voir Wingdings
U+1F680 U+1F6FF Symboles du transport et cartographiques Modèle:Lien web voir Transport, Cartographie, Émoji
U+1F700 U+1F77F Symboles alchimiques Modèle:Lien web voir Alchimie
U+1F780 U+1F7FF Formes géométriques étendu Modèle:Lien web voir Forme géométrique
U+1F800 U+1F8FF Supplément C de flèches Modèle:Lien web voir Flèche
U+1F900 U+1F9FF Supplément de symboles et pictogrammes Modèle:Lien web voir Pictogramme, Émoticône, Émoji
U+1FA00 U+1FA6F Réservé
U+1FA70 U+1FAFF Symboles et pictogrammes étendu-A Modèle:Lien web voir Pictogramme, Émoji
U+1FB00 U+1FFFF Réservé

Plan sinographique complémentaire (PSC, U+20000 à U+2FFFF)

Points de code Nom du bloc en français PDF officiel En savoir plus
Début Fin
U+20000 U+2A6DF Sinogrammes unifiés CJC ― supplément B
(Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr)
Modèle:Lien web voir Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen
U+2A6E0 U+2A6FF Réservé ―<ref>Modèle:Lien web</ref>
U+2A700 U+2B73F Sinogrammes unifiés CJC ― supplément C
(Modèle:Nobr Modèle:Nobr)
Modèle:Lien web voir Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen
U+2B740 U+2B81F Sinogrammes unifiés CJC ― supplément D Modèle:Lien web
U+2B820 U+2CEAF Sinogrammes unifiés CJC ― supplément E Modèle:Lien web
U+2CEB0 U+2EBEF Sinogrammes unifiés CJC ― supplément F Modèle:Lien web
U+2EBF0 U+2F7FF Réservé ―<ref>Modèle:Lien web</ref>
U+2F800 U+2FA1F Sinogrammes de compatibilité CJC ― supplément Modèle:Lien web voir Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen
U+2FA20 U+2FFFF Réservé ―<ref>Modèle:Lien web</ref>

Plan sinographique ternaire (PST, U+30000 à U+3FFFF)

Points de code Nom du bloc en français PDF officiel En savoir plus
Début Fin
U+30000 U+3134F Sinogrammes unifiés CJC ― supplément G Modèle:Lien web voir Chinois, japonais, coréen et vietnamien, Sinogramme, Chinois écrit, Langues chinoises, Écritures du japonais, Japonais, Hanja, Coréen
U+31350 U+3FFFD Réservés ―<ref>Modèle:Lien web</ref>
U+3FFFE U+3FFFF Non-caractères Modèle:Lien web

Plans complémentaires réservés (U+40000 à U+DFFFF)

Points de code Nom du bloc en français PDF officiel Commentaire
Début Fin
U+40000 U+4FFFD Réservé
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
―<ref>Modèle:Lien web</ref> Plan 4. Aucun caractère officiellement défini.
U+4FFFE U+4FFFF Modèle:Nobr
U+50000 U+5FFFD Réservé
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
―<ref>Modèle:Lien web</ref> Plan 5. Aucun caractère officiellement défini.
U+5FFFE U+5FFFF Modèle:Nobr
U+60000 U+6FFFD Réservé
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
―<ref>Modèle:Lien web</ref> Plan 6. Aucun caractère officiellement défini.
U+6FFFE U+6FFFF Modèle:Nobr
U+70000 U+7FFFD Réservé
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr
―<ref>Modèle:Lien web</ref> Plan 7. Aucun caractère officiellement défini.
U+7FFFE U+7FFFF Modèle:Nobr
U+80000 U+8FFFD Réservé
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
―<ref>Modèle:Lien web</ref> Plan 8. Aucun caractère officiellement défini.
U+8FFFE U+8FFFF Modèle:Nobr
U+90000 U+9FFFD Réservé
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
―<ref>Modèle:Lien web</ref> Plan 9. Aucun caractère officiellement défini.
U+9FFFE U+9FFFF Modèle:Nobr
U+A0000 U+AFFFD Réservé
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
―<ref>Modèle:Lien web</ref> Plan 10. Aucun caractère officiellement défini.
U+AFFFE U+AFFFF Modèle:Nobr
U+B0000 U+BFFFD Réservé
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
―<ref>Modèle:Lien web</ref> Plan 11. Aucun caractère officiellement défini.
U+BFFFE U+BFFFF Modèle:Nobr
U+C0000 U+CFFFF Réservé
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
―<ref>Modèle:Lien web</ref> Plan 12. Aucun caractère officiellement défini.
U+CFFFE U+CFFFF Modèle:Nobr
U+D0000 U+DFFFD Réservé
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:NobrModèle:Nobr Modèle:Nobr
―<ref>Modèle:Lien web</ref> Plan 13. Aucun caractère officiellement défini.
U+DFFFE U+DFFFF Modèle:Nobr

Plan complémentaire spécialisé (PCS, U+E0000 à U+EFFFF)

Points de code Nom officiel du bloc Commentaires
Début Fin
E0000 E007F Étiquettes
E0080 E00FF Réservé<ref>http://unicode.org/charts/PDF/UE0080.pdf</ref> -
E0100 E01EF Supplément de sélecteurs de variante
E01F0 EFFFF Réservé<ref>http://unicode.org/charts/PDF/UE01F0.pdf</ref>
[[Table des caractères Unicode/UE01F0|(Modèle:Nobr)]] [[Table des caractères Unicode/UE1000|(Modèle:Nobr)]] [[Table des caractères Unicode/UE2000|(Modèle:Nobr)]] [[Table des caractères Unicode/UE3000|(Modèle:Nobr)]] [[Table des caractères Unicode/UE4000|(Modèle:Nobr)]]
[[Table des caractères Unicode/UE5000|(Modèle:Nobr)]] [[Table des caractères Unicode/UE6000|(Modèle:Nobr)]] [[Table des caractères Unicode/UE7000|(Modèle:Nobr)]] [[Table des caractères Unicode/UE8000|(Modèle:Nobr)]] [[Table des caractères Unicode/UE9000|(Modèle:Nobr)]]
[[Table des caractères Unicode/UEA000|(Modèle:Nobr)]] [[Table des caractères Unicode/UEB000|(Modèle:Nobr)]] [[Table des caractères Unicode/UEC000|(Modèle:Nobr)]] [[Table des caractères Unicode/UED000|(Modèle:Nobr)]]
[[Table des caractères Unicode/UEE000|(Modèle:Nobr)]] [[Table des caractères Unicode/UEF000|(Modèle:Nobr)]] [[Table des caractères Unicode/UEFFF0|(Modèle:Nobr)]]
-

Plans complémentaires à usage privé (U+F0000 à U+10FFFF)

Points de code Nom officiel du bloc PDF officiel Commentaires
Début Fin
U+F0000 U+FFFFD Zone supplémentaire A à usage privé
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr
Modèle:Lien web Plan 15. Aucun caractère officiellement défini.
U+FFFFE U+FFFFF Modèle:Nobr Modèle:Lien web
U+100000 U+10FFFD Zone supplémentaire B à usage privé
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr
Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr Modèle:Nobr
Modèle:Lien web Plan 16. Aucun caractère officiellement défini.
U+10FFFE U+10FFFF Modèle:Nobr Modèle:Lien web

Les zones à usage privé ne contiennent pas les mêmes œils d'une police à l'autre et doivent donc être évités pour le codage de textes destinés aux échanges entre systèmes hétérogènes. Toutefois, ces points de codes à usage privé sont valides et peuvent être utilisés dans tout traitement automatisé conforme aux normes Unicode et Modèle:Nobr, y compris entre systèmes différents s'il existe un accord mutuel privé concernant leur usage.

En l'absence d'accord entre les deux parties, des systèmes utilisant ces caractères peuvent rejeter les textes les contenant, car les traitements qu'ils leur font subir pourraient ne pas fonctionner correctement ou causer des problèmes de sécurité ; les autres systèmes qui n'attribuent aucune fonction spéciale à ces caractères doivent en revanche les accepter comme valides et les conserver comme partie intégrante des textes, comme s'il s'agissait de symboles graphiques, même s'ils ne savent pas les afficher correctement.

Les non-caractères sont des points de code valides, mais ils ne sont pas (et ne seront jamais) assignés à des caractères standardisés. Leur usage dans le codage de textes transmis entre systèmes (même si identiques) est interdit, car il est impossible de les rendre compatibles avec les formes de transformation universelles standardisées (dont UTF-8, UTF-16, UTF-32) les schémas de codage correspondants, et les autres codages standardisés compatibles avec Unicode et Modèle:Nobr (BOCU-1, SCSU, différentes versions de la norme chinoise Modèle:NobrModèle:Etc.). Toutefois, certains systèmes les génèrent et les utilisent localement, mais pour un traitement strictement interne destiné à faciliter l'implémentation des algorithmes de traitement de textes utilisant les autres caractères standardisés.

Parmi ces derniers non-caractères figurent les points de code valides mais réservés aux demi-zones (privées ou non). Ces points de code ne peuvent pas être utilisés individuellement pour coder un caractère. Ils servent uniquement pour la forme de transformation universelle UTF-16 (et les schémas de codage correspondants) pour représenter sur deux codets (à Modèle:Nombre chacun) des points de code valides dans un des Modèle:Nombre complémentaires (certaines combinaisons de codets correspondent à des caractères valides de ces plans, standards ou privés, d'autres combinaisons peuvent ne représenter aucun caractère valide car elles correspondraient à des non-caractères de ces plans complémentaires, et sont donc interdites dans les textes conformes à la norme).

Les autres zones libres (non assignées à un bloc nommé standardisé, ou les points de code laissés libres et réservés dans les blocs nommés existants) sont réservées pour un usage ultérieur dans des versions futures d'Unicode et Modèle:Nobr, mais sont valides. Tout système traitant des textes contenant ces points de code réservés doivent les accepter sans les filtrer. Unicode définit des propriétés par défaut pour les hypothétiques caractères correspondants, afin de préserver la compatibilité des systèmes (conformes à la norme Unicode) avec les futurs textes conformes qui les contiendraient. Aucune application conforme ne doit leur assigner un caractère ou une sémantique spéciale (les zones privées sont destinées à cet usage).

Notes et références

Modèle:Références

Voir aussi

Liens externes

Modèle:Liens

Références normatives

  • Modèle:Lien web — page d’accueil du site officiel.
    • Modèle:Lien web — lien permanent vers la dernière version publiée de la norme Unicode.
    • Modèle:Lien web — annexes normalisées, normes techniques et rapport techniques (dont certains pour d'anciennes versions d’Unicode).
      • Modèle:Lien web — liste officielle des références utilisées dans la norme Unicode.
      • Modèle:Lien web — algorithme d'ordonnancement normalisé Unicode (pour le tri, la reconnaissance ou la recherche de texte).
  • {{#invoke:Langue|indicationDeLangue}} Modèle:Langue — standard de l’IETF (Modèle:Date-) ; remplace [[:rfc:2279|Modèle:Nobr]] (obsolète).

Références informatives

Tables et données tierces de mise en œuvre ou d'utilisation

  • {{#invoke:Langue|indicationDeLangue}} Modèle:Langue : inventaire de Modèle:Nombre (Modèle:Date-) et des caractères qu'elles comprennent.
  • {{#invoke:Langue|indicationDeLangue}} Modèle:Langue, le site d'Alan Wood recensant les différents blocs d'Unicode avec pages de tests, conseils et liens vers les ressources, polices, et utilitaires permettant de saisir et d'afficher les blocs en question avec les navigateurs Web ou dans d'autres logiciels.
  • {{#invoke:Langue|indicationDeLangue}} {{#invoke:Langue|indicationDeLangue}} Modèle:Langue, Wiki recensant et commentant tous les Modèle:Nombre d'Unicode en images.
  • {{#invoke:Langue|indicationDeLangue}} CoeurLumiere.com, simple table des caractères Unicode de U+0000 à U+FFFF (attention, certains sont invalides en HTML et ne sont pas signalés).

Guides d'utilisation

Discussions et articles

Articles connexes

Modèle:Autres projets Modèle:Catégorie principale

Modèle:Palette Modèle:Portail