Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Version 10 d'Unicode

Première rédaction de cet article le 26 septembre 2017


Le 20 juin (oui, je suis en retard), la nouvelle version d'Unicode est sortie, la 10.0. Une description officielle des principaux changements est disponible mais voici ceux qui m'ont intéressé particulièrement. (Il n'y a pas de changement radical.)

Pour explorer plus facilement la grande base Unicode, j'utilise un programme qui la convertit en SQL et permet ensuite de faire des analyses variées. Faisons quelques requêtes SQL :

ucd=> SELECT count(*) AS Total FROM Characters;
 total  
--------
 136755

Combien caractères sont arrivés avec la version 10 ?


ucd=> SELECT version,count(version) FROM Characters GROUP BY version ORDER BY version::float;
...
 8.0     |  7716
 9.0     |  7500
 10.0    |  8518

8 518 nouveaux. Lesquels ?

ucd=> SELECT To_U(codepoint) AS Codepoint, name FROM Characters WHERE version='10.0';
 codepoint |                                    name                                    
-----------+----------------------------------------------------------------------------
...
U+20BF    | BITCOIN SIGN
...
U+11A00   | ZANABAZAR SQUARE LETTER A
...
U+11D01   | MASARAM GONDI LETTER AA
...
U+1F6F8   | FLYING SAUCER
...
U+1F96A   | SANDWICH

Le premier cité va évidemment faire plaisir aux possesseurs de bitcoins. Mais on trouve aussi quatre écritures entièrement nouvelles comme le zanabazar ou le masaram gondi cités en exemple plus haut. Et il y a bien sûr l'habituel lot d'emojis pour faire rire les réseaux sociaux. Tiens, d'ailleurs, combien de caractères sont des symboles (il n'y a pas que les emojis parmi eux, mais Unicode n'a pas de catégorie « emoji ») :

 ucd=> SELECT count(*) FROM Characters  WHERE category IN ('Sm', 'Sc', 'Sk', 'So');
 count 
-------
  6978

Ou, en plus détaillé, et avec les noms longs des catégories :

ucd=> SELECT description,count(category) FROM Characters,Categories WHERE Categories.name = Characters.category AND category IN ('Sm', 'Sc', 'Sk', 'So') GROUP BY category, description;
   description   | count 
-----------------+-------
 Currency_Symbol |    54
 Other_Symbol    |  5855
 Modifier_Symbol |   121
 Math_Symbol     |   948
(4 rows)

Si vous avez les bonnes polices de caractères, voici les caractères pris en exemple plus haut : , 𑨀, 𑴁, 🛸, 🥪… (Si vous n'avez pas les bonnes polices, chaque lettre est un lien vers Uniview.)

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)