Ligatures et petits drapeaux

Peut-être parce que j’ai une écriture abominable, j’adore la typographie. Un sujet qui me fascine en particulier ce sont les ligatures, je trouve merveilleuse l’idée que lorsqu’on assemble des lettres, on se retrouve avec quelque chose d’autre que la séquence de ces lettres. L’autre chose sujet qui me passionne ce sont les caractères exotiques, les caractères chinois, les kanji, tout naturellement, mais aussi la ménagerie de caractères ethniques, techniques ou simplement bizarres que l’on retrouve dans le zoo de l’écriture que l’on appelle communément unicode.

Les dernier arrivés dans la communauté des caractères sont les emoji, une création d’origine nipponne, qui donne le titre de caractère à proprement parler à un sourire, la floraison des cerisiers, ou un envahisseur extra-terrestre 8 bits. Naturellement, il y a des réfractaires, des gens qui arguent que ce ne sont pas de vrais caractères. Ces mêmes gens n’ont pas objecté sur le fait que nous avions un caractère pour représenter le mot « et », l’esperluette dont personne ne connaît le nom. Nous avons aussi des caractères pour des abominations comme le ©opyright, que personne ne saurait prononcer, ou bien des petits drapeaux noir et blancs.

Les 絵文字 (emoji) sont apparus sur les téléphone mobiles japonais et n’ont été standardisé que lorsque les entreprise américaines ont réalisé qu’elles devaient inter-opérer avec ces téléphones, tous capables d’envoyer des e-mails. Pour tout simplifier, chaque opérateur nippon utilisait un standard différent pour ces caractères. Parmi ces caractère se trouvaient quelque petits drapeaux pour les pays importants : le Japon, bien sûr, mais aussi la Corée du Sud, la Chine, les États-Unis, la France, l’Espagne, l’Italie, la Russie, le Royaume Uni et l’Allemagne.

Durant le processus de standardisation, les pays qui ne faisaient pas partie de la liste ont, curieusement, objecté à cette discrimination. Comme souvent dans ces cas là, un curieux compromis a été trouvé : au lieu d’encoder chaque drapeau comme un caractère, il est encodé sur deux caractères spéciaux, deux lettres magiques qui correspondent au pays. Ainsi tous les pays pouvaient être représentés par leur code, et le système de rendu et la fonte sont libres de représenter ce code avec un drapeau. Ainsi la Suisse est représentée ainsi : 🇨🇭 (CH) et la France 🇫🇷 (FR). Sous Mac OS X 10.7, la séquence pour la Suisse reste CH, celle pour la France devient un petit drapeau français.

Ce système a l’avantage de rester compatible avec les système existants tout en laissant la possibilité d’ajouter de nouveaux pays dans les fontes, il n’en reste pas moins compliqué : une séquence de plusieurs caractère unicode correspond a un seul caractère dans le système des téléphones mobiles japonais et à une ligature à l’affichage. Pour tout simplifier, ces caractères ont des valeurs au dessus de 65535, ils ne peuvent donc être exprimés avec deux octets. À l’époque où Java et Javascript ont été conçu, on se disait encore que 16 bits suffiraient pour tous les caractères, et ils utilisaient le système UCS2 qui a entretemps été transformé en utf-16. Le résultat, chacun des deux caractères du drapeau français doit à son tour être encodé sur deux mots de 16 bits (appelés surrogate pair en anglais). La séquence hexadécimale de ce drapeau devient donc : D83C,DDEB,D83C,DDF7, ce qui fait que du code quelque peu ancien pensera que ce drapeau est en fait quatre caractères. Rien n’est simple…

J’ai généré une liste complète des drapeaux en emoji.

3 thoughts on “Ligatures et petits drapeaux

  1. In your list (which is very good and complete), there is no picture. Where can I find Unicode images from this different countries?

    • Your system needs to have the right font installed. I think the BabelStone Flags font is such a font.

Leave a Reply