El equipo de desarrollo propone cambiar a UTF-8

Recientemente, se publicó un manifiesto de programadores de Tel Aviv en Hacker News. Sugirieron que UTF-8 sea la solución predeterminada para almacenar cadenas de texto en la memoria y la comunicación.

El material generó una discusión activa, y decidimos comprender la situación, considerar los argumentos de los expertos de TI, incluidos los ingenieros de IBM y los especialistas del consorcio W3C.


Fotos - Raphael Schaller - Unsplash

Situación de codificación


En 1988, Joe Becker presentó el primer borrador del estándar Unicode. El documento se basó en el supuesto de que 16 bits serían suficientes para almacenar cualquier carácter. Sin embargo, rápidamente se hizo evidente que esto no era suficiente. Por lo tanto, han aparecido nuevas opciones de codificación, incluidas UTF-8 y UTF-16. Pero la variedad de formatos y la falta de recomendaciones estrictas sobre su uso llevaron a la confusión en la industria de TI (incluida la terminología).

El formato interno de Windows es UTF-16 . Al mismo tiempo, los autores del manifiesto, que se discutió en Hacker News, dicen que en un momento Microsoft usó los términos Unicode y widechar como sinónimos de UTF-16 y UCS-2 (que se considerapredecesor original de UTF-16). En cuanto al ecosistema de Linux, es costumbre usar UTF-8 en él. La variedad de codificaciones a veces conduce al hecho de que los archivos se dañan durante la transferencia entre computadoras con diferentes sistemas operativos.

La estandarización de la industria puede ser una solución: la transición a UTF-8 para almacenar cadenas de texto en la memoria o en el disco e intercambiar paquetes a través de la red.

Por qué UTF-8 se considera mejor que UTF-16


Uno de los argumentos principales es que UTF-8 reduce la cantidad de memoria ocupada por los caracteres del alfabeto latino (son utilizados por muchos lenguajes de programación). Las letras latinas, los números y la puntuación común están codificados en UTF-8 con solo un byte. Además, sus códigos corresponden a códigos en ASCII, lo que brinda compatibilidad con versiones anteriores.

Además, los expertos de IBM dicen que UTF-8 es mejor para interactuar con sistemas que no esperan que lleguen datos multibyte. Otras codificaciones Unicode contienen numerosos bytes nulos. Las utilidades pueden encontrarlos al final del archivo. Por ejemplo, en UTF-16, el carácter A se ve así : 00000000 01000001. En una línea C, esta secuencia se puede recortar. En el caso de UTF-8, cero es solo NUL. En esta codificación, la primera letra del alfabeto latino se representa como 01000001 : no hay problemas con un salto inesperado.

Por la misma razón, los ingenieros del consorcio W3C recomiendan usar UTF-8 al desarrollar interfaces front-end. Por lo tanto, puede evitar dificultades con el funcionamiento de los dispositivos de red.


Fotos - Kristian Strand - Notplash

Resident Hacker News notadoque UTF-8 le permite detectar errores de codificación en las primeras etapas. En él, los bytes se leen secuencialmente, y los bits superiores determinan su número. Por lo tanto, el valor del punto de código se calcula sin ambigüedades y los desarrolladores de aplicaciones no necesitan pensar en el problema de Little-Endian o Big-Endian .

Donde UTF-16 tiene la ventaja


Las letras y la puntuación latinas pueden ocupar menos memoria en UTF-8 (en comparación con UTF-16). Algunos puntos de código requieren el mismo número de bytes en ambas codificaciones; por ejemplo, este hecho es cierto para griego y hebreo.

La situación es diferente con los caracteres asiáticos: en el caso de UTF-8, necesitan más espacio . Por ejemplo, el carácter chino estará representado por tres bytes: 11101000 10101010 10011110 . El mismo personaje en UTF-16 se verá como 10001010 10011110 .

Cual es el resultado


El debate sobre el problema de introducir una codificación única ha estado ocurriendo durante mucho tiempo. Esta pregunta se planteó hace casi once años en un hilo en Stack Overflow. Pavel Radzivilovsky (Pavel Radzivilovsky): uno de los autores del manifiesto participó en él. Desde entonces, UTF-8 ya se ha convertido en una de las codificaciones más populares en Internet. Y fue reconocido como obligatorio para "todas las situaciones" en WHATWG, una comunidad de especialistas en HTML y API que desarrolla estándares relevantes.

Recientemente, Microsoft también ha comenzado a recomendar el uso de UTF-8 en el desarrollo de aplicaciones web. Quizás en el futuro esta práctica se extenderá a otras utilidades.



:

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


All Articles