L'équipe de développement propose de passer à l'UTF-8

Récemment, un manifeste de programmeurs de Tel Aviv a été publié sur Hacker News. Ils ont suggéré de faire de l'UTF-8 la solution par défaut pour stocker les chaînes de texte dans la mémoire et la communication.

Le matériel a généré une discussion active, et nous avons décidé de comprendre la situation, d'examiner les arguments des experts informatiques - y compris les ingénieurs IBM et les spécialistes du consortium W3C.


Photos - Raphael Schaller - Unsplash

Situation d'encodage


En 1988, Joe Becker a présenté la première version de la norme Unicode. Le document était basé sur l'hypothèse que 16 bits seraient suffisants pour stocker n'importe quel caractère. Cependant, assez rapidement, il est devenu clair que cela ne suffisait pas. Par conséquent, de nouvelles options d'encodage sont apparues, notamment UTF-8 et UTF-16. Mais la variété des formats et le manque de recommandations strictes sur leur utilisation ont conduit à la confusion dans l'industrie informatique (y compris la terminologie).

Le format interne de Windows est UTF-16 . Dans le même temps, les auteurs du manifeste, qui a été discuté à Hacker News, disent qu'à un moment donné Microsoft a utilisé les termes Unicode et widechar comme synonymes pour UTF-16 et UCS-2 (qui est considéréprédécesseur d'origine de l'UTF-16). Quant à l'écosystème Linux, il est d'usage d'y utiliser UTF-8. La variété des encodages conduit parfois au fait que les fichiers sont endommagés lors du transfert entre ordinateurs avec différents systèmes d'exploitation.

La standardisation de l'industrie peut être une solution - la transition vers UTF-8 pour le stockage de chaînes de texte en mémoire ou sur disque et l'échange de paquets sur le réseau.

Pourquoi UTF-8 est considéré comme meilleur que UTF-16


L'un des principaux arguments est que l'UTF-8 réduit la quantité de mémoire occupée par les caractères de l'alphabet latin (ils sont utilisés par de nombreux langages de programmation). Les lettres latines, les chiffres et la ponctuation courante sont codés en UTF-8 avec un seul octet. De plus, leurs codes correspondent à des codes en ASCII, ce qui donne une compatibilité descendante.

De plus, les experts IBM affirment que l'UTF-8 est préférable pour interagir avec des systèmes qui ne s'attendent pas à ce que des données multi-octets arrivent. D'autres codages Unicode contiennent de nombreux octets nuls. Les utilitaires peuvent leur trouver la fin du fichier. Par exemple, en UTF-16, le caractère A ressemble à ceci: 00000000 01000001. Sur une ligne C, cette séquence peut être tronquée. Dans le cas de l'UTF-8, zéro est uniquement NUL. Dans cet encodage, la première lettre de l'alphabet latin est représentée par 01000001 - il n'y a aucun problème avec une pause inattendue.

Pour la même raison, les ingénieurs du consortium W3C recommandent d' utiliser UTF-8 lors du développement d'interfaces frontales. Vous pouvez ainsi éviter les difficultés de fonctionnement des périphériques réseau.


Photos - Kristian Strand - Unplack

Resident Hacker News notéque UTF-8 vous permet de détecter les erreurs de codage dans les premiers stades. Dans celui-ci, les octets sont lus séquentiellement et les bits de surdébit déterminent leur nombre. Ainsi, la valeur du point de code est calculée sans ambiguïté et les développeurs d'applications n'ont pas besoin de penser au problème Little-Endian ou Big-Endian .

Où UTF-16 a l'avantage


Les lettres latines et la ponctuation peuvent occuper moins de mémoire en UTF-8 (par rapport à UTF-16). Certains points de code nécessitent le même nombre d'octets dans les deux encodages - par exemple, ce fait est vrai pour le grec et l'hébreu.

La situation est différente avec les personnages asiatiques - dans le cas de l'UTF-8, ils ont besoin de plus d'espace . Par exemple, le caractère chinois sera représenté par trois octets: 11101000 10101010 10011110 . Le même caractère dans UTF-16 ressemblera à 10001010 10011110 .

Quel est le résultat


Le débat sur le problème de l'introduction d'un seul codage dure depuis longtemps. Cette question a été soulevée il y a presque onze ans dans un fil de discussion sur Stack Overflow. Pavel Radzivilovsky (Pavel Radzivilovsky) - l'un des auteurs du manifeste y a participé. Depuis lors, UTF-8 est déjà devenu l' un des encodages les plus populaires sur Internet. Et il a été reconnu comme obligatoire pour «toutes les situations» dans le WHATWG, une communauté de spécialistes HTML et API qui élabore des normes pertinentes.

Récemment, Microsoft a également commencé à recommander l' utilisation de l'UTF-8 dans le développement d'applications Web. Peut-être qu'à l'avenir, cette pratique s'étendra à d'autres services publics.



:

« www»: -
« IaaS»: 1cloud
: AdTech- GDPR?
10- —
,


All Articles