Équivalences unicode

Équivalences unicode

Cet article traite des équivalences unicode. Unicode contient de nombreux caractères. Pour maintenir la compatibilité avec des standards existants, certains d’entre eux sont équivalents à d’autres caractères ou à des séquences de caractères. Unicode fournit deux notions d’équivalence : canonique et de compatibilité, la première étant un sous-ensemble de la deuxième. Par exemple, le caractère n suivi du tilde ~ est canoniquement équivalent et donc compatible au simple caractère Unicode ñ, tandis que la ligature typographique ff est seulement compatible avec la séquence de deux caractères f.

La normalisation Unicode est une normalisation de texte qui transforme des caractères ou séquences de caractères en une même représentation équivalente, appelée « forme normale » dans cet article. Cette transformation est importante, car elle permet de faire des comparaisons, recherches et tris de séquences Unicode. Pour chacune des deux notions d’équivalence, Unicode définit deux formes, l’une composée, et l’autre décomposée, conduisant à quatre formes normales, abrégées NFC, NFD, NFKC et NFKD, qui seront détaillées ci-dessous et qui sont aussi décrites dans Normalisation Unicode.

Sommaire

Les deux notions d'équivalence

Équivalence canonique

L’équivalence canonique est une forme d’équivalence qui préserve visuellement et fonctionnellement les caractères équivalents. Par exemple le caractère ü est canoniquement équivalent à la séquence u suivi de ¨. De manière similaire, Unicode identifie plusieurs diacritiques grecs avec des signes de ponctuation qui ont la même apparence.

Sous-jacent à ce concept d’équivalence canonique d’Unicode il y a donc les deux notions, réciproques l’une de l’autre, de composition et de décomposition de caractères. La composition de caractères consiste à combiner plusieurs caractères simples en un seul caractère sous une forme dite précomposée, tel que le caractère n qui combiné avec le tilde ~ donnent le caractère ñ. La décomposition est le processus réciproque, consistant à retrouver les caractères élémentaires à partir d’un caractère composé.

Équivalence de compatibilité

L’équivalence de compatibilité correspond plutôt à une équivalence de texte ordinaire, et peut réunir ensemble des formes distinctes sémantiquement. Comme son nom l’indique elle permet essentiellement de maintenir une compatibilité avec des jeux de caractères incomplets.

Par exemple, des chiffres en indice ou en exposant sont équivalents (par compatibilité) aux chiffres qui les constituent. Ils ne leur sont pas canoniquement équivalents, puisque le sens en est différent. Mais la conversion vers un jeu de caractères ne comprenant pas ces indices ou exposants permettra de conserver partiellement leur signification.

Par exemple la transformation a² → a2 permettra que ce groupe de deux caractères puisse être encore compris comme le carré de a, surtout avec l’aide du contexte.

Les indices et les exposants peuvent être considérés de façon bien plus commode en utilisant des formats Unicode enrichis.

Les caractères katakana de pleine chasse ou demi-chasse sont aussi équivalents (par compatibilité) sans être canoniquement équivalents. Il en est de même pour les ligatures et leurs composants. Pour ce dernier exemple, il y a en général une distinction visuelle plutôt qu’une distinction sémantique. Autrement dit ligatures et non-ligatures ont dans ce cas le même sens, mais apparaissent comme des choix de design différents.

Normalisation Unicode

L’implémentation de recherches, comparaisons et tris de chaînes de caractères Unicode dans des logiciels de traitement de texte doit prendre en compte la présence d’écritures équivalentes. Dans le cas contraire, les utilisateurs risquent d’échouer dans leur recherche (comparaison, tri) à cause de caractères équivalents (et donc apparaissant comme un même glyphe), mais représentés de façon interne par des séquences différentes de codes.

Unicode fournit des algorithmes standard de normalisation qui doivent produire une même séquence de codes pour toutes séquences équivalentes. Le critère d’équivalence peut-être canonique (NF) ou compatible (NFK). Et pour chacun de ces deux critères, Unicode fournit deux formes normales : la forme (pré)composée NFC ou NFKC et la forme décomposée NFD ou NFKD. En outre ces deux formes imposent un « ordre canonique » sur la séquence de codes, afin qu’il y ait bien unicité.

Pour les recherches ou comparaisons ou tris, les logiciels peuvent utiliser la forme composée ou la forme décomposée. Le choix n’a aucune importance, pourvu que ce soit le même pour toutes les chaînes de caractères concernées dans une recherche, comparaison, etc.

Par contre, le choix du critère d’équivalence peut affecter le résultat de la recherche.

Par exemple certaines ligatures comme U+FB03 (ffi), ou certains chiffres romains comme U+2168 (Ⅸ) ou encore des indices ou exposants tels que U+2075 (⁵) ont leurs propres codes Unicode. La normalisation canonique (NF) ne les modifiera pas, mais la normalisation de compatibilité (NFK) décomposera la ligature ffi en ses composants, et ainsi une recherche de U+0066 (f) réussira dans NFKC(U+FB03) mais pas dans NFC(U+FB03). On aura bien sûr un comportement analogue pour la recherche de U+0049 (I) dans U+2168. Enfin l’exposant U+2075 (⁵) est transformé en U+0035 (5) par normalisation de compatibilité donc peut être trouvé lors d’une recherche du simple chiffre 5.

Formes normales

Unicode définit (comme nous l’avons vu dans la section précédente) quatre formes normales. Ces quatre formes imposent un ordre canonique pour les séquences résultantes afin d’en garantir l’unicité. Les algorithmes associés sont tous idempotents, mais aucun n’est injectif à cause des singletons.

Les singletons sont des caractères qui sont uniques mais équivalents (pour compatibilité) à d’autres caractères de même glyphe. Par exemple le caractère Ω (ohm) est équivalent au caractère Ω (omega) : c’est un singleton.

Les quatre formes sont NFC, NFD, NFKC et NFKD. Des détails et exemples en sont donnés ici : normalisation Unicode

Ordre canonique

L’ordre canonique concerne essentiellement les caractères sous forme décomposée en séquence de caractères simples. Il est d’abord impératif que le(s) caractère(s) de base soient en tête et suivi des caractères modifiants (diacritiques en général mais ce n’est pas une obligation).

Ensuite, s’il y a plusieurs caractères modifiants, des règles devront être suivies également pour que l’ordre en soit unique pour un caractère décomposé donné.

Voir aussi

Références

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Équivalences unicode de Wikipédia en français (auteurs)

Игры ⚽ Нужна курсовая?

Regardez d'autres dictionnaires:

  • Equivalences unicode — Équivalences unicode Cet article traite des équivalences unicode. Unicode contient de nombreux caractères. Pour maintenir la compatibilité avec des standards existants, certains d’entre eux sont équivalents à d’autres caractères ou à des… …   Wikipédia en Français

  • Unicode — est une norme informatique, développée par le Consortium Unicode, qui vise à permettre le 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, quelle… …   Wikipédia en Français

  • Unicode et html — Wikipédia …   Wikipédia en Français

  • Normalisation Unicode — La normalisation Unicode est une normalisation de texte qui transforme des caractères ou séquences de caractères équivalents en représentation fondamentale afin que celle ci puisse être facilement comparée. Sommaire 1 NFD 2 NFC 3 NFKD 4 NFKC …   Wikipédia en Français

  • HTML et Unicode — Unicode et HTML Wikipédia …   Wikipédia en Français

  • Table des caracteres Unicode/U2A00 — Table des caractères Unicode/U2A00 Tables Unicode 0000 – 0FFF   8000 – 8FFF 1000 – 1FFF 9000 – 9FFF 2000 – 2FFF …   Wikipédia en Français

  • Table des caractères Unicode/U2A00 — Tables Unicode 0000 – 0FFF   8000 – 8FFF 1000 – 1FFF 9000 – 9FFF 2000 – 2FFF …   Wikipédia en Français

  • Table des caractères unicode/u2a00 — Tables Unicode 0000 – 0FFF   8000 – 8FFF 1000 – 1FFF 9000 – 9FFF 2000 – 2FFF …   Wikipédia en Français

  • Binary Ordered Compression for Unicode — Le BOCU 1 est un schéma de transformation du texte, compatible avec le répertoire universel d’Unicode et ISO/CEI 10646, en séquences d’octets. Il tire son nom de l’acronyme anglais de Binary Ordered Compression for Unicode (« compression… …   Wikipédia en Français

  • Courriel Et Unicode — Unicode Jeux de caractères UCS (ISO/CEI 10646) ISO 646, ASCII ISO 8859 1 WGL4 UniHan Équivalences normalisées NFC (précomposée) NFD (décomposée) NFKC (compatibilité) NFKD (compatibilité) Propriétés et algorithmes ISO 15924 …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”