A medida que se incorporaban más idiomas en los ordenadores, estos necesitaban representar más caracteres de texto que los permitidos por el ASCII (1 byte sólo permitía 256 caracteres).
UTF-8 se introdujo con una longitud variable de 1 a 4 bytes, lo que aumentó enormemente el rango de caracteres posibles.
Una ventaja de los caracteres de tamaño variable es que el texto no tiene bytes innecesarios para el ASCII (en UTF-8 sólo se requería 1 byte).
Una desventaja de los caracteres de tamaño variable es que la búsqueda de caracteres ya no puede hacerse rápidamente
(O(1) constant time) con una simple indexación (por ejemplo my_text[3]
para obtener el 4º carácter). Es posible que los caracteres previos tengan tamaños variables, alterando la posición de inicio del 4º carácter en la secuencia de bytes.
En cambio, debemos iterar a través de una secuencia de bytes UTF-8 para entender dónde comienzan realmente los caracteres unicode (O(n) tiempo lineal).
Ferris: " Gracias a UTF-8 puedo representar a mis amigos acuáticos con emojis."
🐠🐙🐟🐬🐋