- Il y a 20 ans, Joel soulignait déjà, avec son "There Ain't No Such Thing As Plain Text", qu'il est indispensable de comprendre les encodages
- Unicode est un standard qui unifie toutes les langues humaines afin de pouvoir les utiliser sur ordinateur
- Il s'appuie sur un système de points de code attribuant un numéro unique à chaque caractère
- Le plus grand point de code est
0x10FFFF, ce qui fournit un espace d'environ 1,1 million de points de code
- UTF-8 est l'encodage le plus courant, utilisé avec une probabilité de 98 %
- UTF-8 est un encodage à longueur variable, dans lequel un point de code peut être encodé sous forme de séquence de 1 à 4 octets
- UTF-8 est compatible au niveau des octets avec ASCII et est efficace en espace pour le latin de base
- UTF-8 intègre des mécanismes de détection et de récupération d'erreurs, permettant d'identifier des séquences d'octets UTF-8 complètes et valides
- Le cluster de graphèmes étendu, ou graphème, est l'unité sur laquelle il faut itérer, et non le point de code
- Unicode est mis à jour chaque année, et les règles définissant les clusters de graphèmes changent elles aussi chaque année
- Unicode peut être rendu différemment selon la locale
- Les paires de substitution d'Unicode sont deux unités UTF-16 utilisées pour encoder un seul point de code Unicode
- UTF-16 est encore utilisé comme représentation en mémoire dans certains systèmes
- Les chaînes Unicode doivent être normalisées avant d'être comparées
- L'article souligne l'importance d'utiliser des bibliothèques Unicode même pour des opérations de base comme
strlen, indexOf et substring
3 commentaires
Dans le cas de
"♂️".length, Python 3.11 renvoie 1.Les emojis s’affichent de manière corrompue dans les commentaires.
Commentaires Hacker News