Cet article est une retranscription de la présentation faite par Mathias Bynens lors de la conférence dotJs qui s’est déroulée à Paris le 30 novembre 2012.
Pour information, l’Unicode est un standard informatique qui permet des échanges de textes dans différentes langues, à un niveau mondial» (source wikipédia).
Pour un caractère nous avons donc un symbole qui possède un nom unique ainsi qu’un code point.
Mathias nous présente plusieurs caractères tels que
U+0041 | A | A |
:
.
Son caractère préféré étant le suivant :
U+1F4A9 | «pile of poo» |
|
Qu’en est-il du support javascript de l’Unicode ?
Il faut utiliser le “” pour utiliser l’unicode en js, ce qui donne, “A” = U0041.
Le problème que nous a présenté Mathias dans son exposé sur l’Unicode, est que javascript peut encore s’améliorer.
Un simple exemple nous montre qu’ une chaîne mal interprétée peut donner un résultat non escompté : ‘uD834uDF06′.length = 2 parce que le code possède 2 codes échappés ‘uD834’ et ‘uDF06‘.
Depuis Ecmascript 6 une nouvelle méthode est apparue mais ne corrige toujours pas les problèmes liés à l’Unicode.
String.fromCharCode(0xD834, 0xDF06).length == 2
Un fait amusant nous a été rapporté : sur Twitter le nombre limite de caractères est de 140. Mais certains clients ne gèrent pas bien l’Unicode et donc peuvent limiter sans le savoir le nombre de caractères utiles.
En savoir plus sur les trouvailles de Mathias et l’Unicode : http://mathiasbynens.be/notes/javascript-escapes
De plus en bonus une liste complète des caractères Unicode : http://en.wikipedia.org/wiki/List_of_Unicode_characters