Skip to content
15 septembre 2014 / gallegre

Voyage en Unicode (1/14)

Ça fait quelque temps que j’explore Unicode, essentiellement pour le plaisir. Les quelques articles qui vont suivre seront quelques extraits de mon carnet de voyage dans ces contrées exotiques et, il faut bien le dire, un peu intimidantes.
Bien sûr, les baroudeurs d’Unicode n’apprendront rien, mais j’espère que les néophytes s’acclimateront en douceur et partageront avec plaisir quelques unes de mes découvertes.

Unicode, c’est simple

La norme Unicode, c’est essentiellement un inventaire, le plus exhaustif possible, de tous les caractères possibles dans tous les systèmes d’écriture du monde. Évidemment, c’est un gros travail, et il n’est pas terminé puisque depuis les débuts de la norme (en 1991, peu ou prou), de nouvelles versions viennent périodiquement compléter l’état de l’art.

La première question, c’est de bien définir ce qu’est un caractère (au sens de la norme, bien sûr), et donc, ce qui peut entrer dans l’inventaire.
Par exemple, dans l’image suivante
fonts-sample-libreoffice
il est clair pour tout le monde qu’il s’agit de la lettre A, première lettre de l’alphabet latin, en majuscule.
La première ligne représente quatre variantes de style (de fonte pour nos amis typographes) de la même police pour le même caractère A, alors que la seconde représente quatre polices différentes.
Mais Unicode ne se préoccupe (normalement) pas de ces différences : le caractère A a un seul code normalisé, (codepoint en anglais) : U+0041 « LATIN CAPITAL LETTER A » mais plusieurs glyphes pour le représenter. En sus, un caractère est doté d’une multitude de propriétés, qu’on verra en détails par la suite. Par exemple, pour notre A, le catalogue peut nous apprendre (si besoin est) que c’est un caractère représentable graphiquement, que c’est une lettre, et que c’est une majuscule.

D’un autre côté, Unicode fait (heureusement) la distinction de casse : A (U+0041) et a (U+0061) sont bien représentés par deux codepoints différents, et la casse est explicitement une des propriétés d’un caractère.

Unicode, c’est compliqué

La forme et le fond

Avec les fontes et les styles, on peut donc avoir plusieurs glyphes pour représenter un seul caractère.
Mais ça se complique quand on constate que l’inverse est vrai aussi : ces trois caractères A Α А semblent à première vue le même. Ce n’est plus le cas si on les lit en contexte :

  1. Alphabet
  2. Αλφάβητο (en grec)
  3. Алфавит (en russe)

En général, l’initiale est représentée par le même glyphe pour représenter trois caractères distincts :

  1. U+0041 LATIN CAPITAL LETTER A
  2. U+0391 GREEK CAPITAL LETTER ALPHA
  3. U+0410 CYRILLIC CAPITAL LETTER A

On distingue donc les caractères selon leur système d’écriture, mais pas selon leur langue :  Alphabet (en français, anglais, allemand), Alfabeto (italien, espagnol, portugais) et Aakkoset (finnois) commencent tous par le même caractère U+0041 (LATIN CAPITAL LETTER A). De même pour Алфавит (russe) et Абетка (ukrainien) avec U+0410 (CYRILLIC CAPITAL LETTER A).

Tout s’explique…

249px-Venn_diagram_gr_la_ru.svgLe diagramme ci-dessus (source Wikimedia Commons, mate2code) représente les glyphes des trois alphabets, grec, latin et cyrillique, avec leurs intersections. Notre « A » est bien présent dans la zone commune aux trois. La raison profonde, c’est que les trois dérivent de l’alphabet phénicien, mais ceci est une autre histoire.
L’alphabet latin est partagé par la quasi-totalité des langues européennes, plus les langues orales transcrites par les Européens en question. Il a fallu donc l’adapter avec de multiples variations pour les différentes langues. Quelques exemples :

  • Ð, ð, Ø, Þ, þ, ß, ı et d’autres lettres additionnelles, spécifiques à certaines langues
  • é, à, ï, ñ, ô, ċ, İ   et d’autres lettres standard agrémentées de signes diacritiques
  • Æ, æ, Œ, œ, ß, et d’autres ligatures

Ces caractères ont donc rejoint l’alphabet « latin » moderne au sens large, même s’ils sont pour la plupart absents de l’abécédaire latin des Romains.

Les systèmes d’écritures

Unicode cherchant à classer les caractères, il est donc étroitement lié à un autre standard, ISO 15924, qui catalogue non pas les caractères mais les systèmes d’écriture. À ce jour, la norme en recense 171, chacun étant caractérisé par :

  • un code alphabétique sur 4 lettres, ex. “Latn
  • un numéro sur 3 chiffres, de type Classification Décimale, ex. 215
  • un nom anglais, ex. “Latin
  • un nom français, ex. “Latin

Le système de classification décimale « à trous » permet à ISO 15924 de regrouper les systèmes d’écriture par grandes familles, d’importances inégales. L’alphabet latin fait partie de la famille 2XX – écritures alphabétiques de gauche à droite . Curieusement, ISO 15924 lui a trouvé deux cousins :

  • Latf216 = latin (variante brisée) ou “Latin (Fraktur variant)”
  • Latg217 = latin (variante gaélique) ou “Latin (Gaelic variant)”

qui, eux, ne donnent pas lieu à des caractères différenciés dans Unicode.

Dans mon prochain article, je reviendrai sur cet inventaire des systèmes d’écriture, qui donne lieu à de beaux exotismes, tant spatiaux que temporels ! Pour les plus pressés, vous pouvez en trouver la liste complète sur le site dédié.

En résumé

En résumé, Unicode tient compte pour définir les caractères du système d’écriture (norme ISO 15924) mais en général pas des langues, ni des prononciations, ni des pays (variantes nationales d’une même langue). Pour mémo, ces aspects sont couverts par d’autres normes :

qui ne sont donc d’aucune utilité pour Unicode ! 😉

Publicités

2 commentaires

Laisser un commentaire
  1. Sacrip'Anne / Sep 15 2014 20:49

    Je suis émerveillée que tu arrives à faire un billet fort intéressant sur ce sujet touffu. Merci et (je n’aurais pas parié dire ça un jour), vivement la suite !

Trackbacks

  1. Voyage en Unicode (2/14) – l’arabe | GallAxie

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :