En la publicación anterior, aprendimos sobre el código ASCII, el precursor de los caracteres digitales. Aunque el ASCII era excelente, sus 128 caracteres resultaron insuficientes para abarcar todos los idiomas del mundo.
Hoy hablaremos sobre Unicode, un gran pacto que trasciende las limitaciones del ASCII y unifica todos los caracteres del mundo, incluidos el coreano, chino, árabe y emojis.
En los primeros días de Internet, era común ingresar a sitios web de otros países y ver una pantalla llena de símbolos como □. Esto se conoce como el fenómeno 'Mojibake'.
La razón era simple: cada país y cada región lingüística utilizaba diferentes tablas de caracteres (Encoding). Con los mismos datos binarios, algunos computadores interpretaban "esto es coreano" y otros "esto es un idioma de Europa Occidental".
El salvador que apareció para calmar la confusión de esta torre de Babel digital fue el Unicode.

1. ¿Qué es Unicode?
Unicode es un estándar internacional que otorga un número único (Code Point) a todos los caracteres del mundo, lo que significa "Código Universal".
Mientras que el código ASCII asignó números del 0 al 127, Unicode ha expandido esa gama a prácticamente un número infinito. Actualmente, hay más de 140,000 caracteres registrados en Unicode, que incluyen no solo los idiomas existentes, sino también jeroglíficos antiguos, símbolos musicales y los emojis que usamos a diario.
Punto de código (Code Point)
Unicode gestiona cada carácter asignándole un número hexadecimal que comienza con U+.
-
Letra latina 'A': $U+0041$ (igual que el código ASCII)
-
Letra coreana '가': $U+AC00$
-
Carácter chino '日': $U+65E5$
-
Emoji '😀': $U+1F600$
Ahora, todos los computadores del mundo pueden recibir la señal $U+1F600$ y, sin importar la configuración del idioma, pensar en la misma cara sonriente (😀).
2. ¿Unicode y UTF-8 son lo mismo?
Este es un punto que confunde a muchas personas. "Unicode" y "UTF-8" no son lo mismo. Entender su relación es la clave de este artículo.
-
Unicode: Es un 'mapa' que conecta caracteres y números. (Un pacto abstracto)
-
UTF-8 (Codificación): Es el 'método' de almacenar realmente esos números en la memoria de la computadora.
Si Unicode es un 'catálogo' que asigna un número de identificación a cada objeto del mundo, UTF-8 es la 'tecnología' para empaquetar esos objetos en cajas para cargar en un camión.
3. ¿Por qué UTF-8 se convirtió en el estándar?
Existen varios métodos de codificación para almacenar caracteres de Unicode, como UTF-16, UTF-32, etc. Sin embargo, más del 98% del mundo web utiliza UTF-8.
La victoria de UTF-8 se debe a su ingeniosa eficiencia llamada 'longitud variable', que asigna el espacio de almacenamiento (Bytes) de manera diferente según el tipo de carácter.
| Tipo de carácter | Ejemplo | Número de Unicode | Tamaño de almacenamiento UTF-8 | Características |
|---|---|---|---|---|
| Latín básico | A | $U+0041$ | 1 Byte | 100% compatible con ASCII |
| Idiomas de Medio Oriente/Europa | Ω, ¶ | $U+03A9$ | 2 Bytes | Extensión latina, griego, etc. |
| CJK (Coreano, Chino, Japonés) | 한, 中, あ | $U+D55C$ | 3 Bytes | La mayoría de los caracteres asiáticos |
| Emoji/Antiguo | 🚀 | $U+1F680$ | 4 Bytes | Caracteres que van más allá del plano |
Ventajas de UTF-8
-
Compatibilidad con ASCII: Almacenar documentos en inglés utiliza la misma capacidad que el código ASCII. Es completamente compatible con sistemas existentes.
-
Eficiencia: Los caracteres alfabéticos y numéricos comunes se almacenan en 1 byte, mientras que los caracteres complejos se almacenan más largos, optimizando el tamaño total.
4. Consideraciones para los desarrolladores al tratar con Unicode
A diferencia de los días cuando los caracteres estaban compuestos únicamente de 1 byte (ASCII), el entorno de Unicode requiere atención al "calcular la longitud de la cadena".
-
Desde el punto de vista de la memoria (Byte): 'A' es 1, '한' es 3.
-
Desde el punto de vista del carácter (Character): 'A' es 1 carácter, '한' también es 1 carácter.
Si dividimos o almacenamos cadenas con métodos antiguos, podría ocurrir que se corten caracteres multibyte (coreano, chino, etc.), resultando en datos corruptos. Por lo tanto, los lenguajes de programación modernos incluyen bibliotecas que soportan automáticamente este manejo de Unicode.
Resumen
-
Unicode: Un estándar internacional que otorga un número único (Code Point) a todos los caracteres del mundo.
-
Propósito: Unificar los distintos métodos de codificación que existían, resolviendo el fenómeno de la corrupción de caracteres (Mojibake).
-
UTF-8: El método más eficiente para almacenar Unicode. Los caracteres en inglés son 1 byte, mientras que los caracteres coreanos/chinos/japoneses son 3 bytes de longitud variable.
Unicode es no solo un estándar técnico, sino también la infraestructura más inclusiva de la era digital, que permite el intercambio de información a nivel mundial sin barreras lingüísticas.
🚀 Próxima publicación
Ahora que hemos aprendido sobre cómo se almacenan los textos (codificación), es hora de descubrir cómo manejar datos de manera más inteligente. "¿Cómo se almacenan las imágenes como 0 y 1?" Explicaremos de forma sencilla el principio de los píxeles, la resolución y el color RGB.
👇 Artículo recomendado para leer junto con este
Si te ha parecido interesante, ¡no olvides suscribirte para no perderte otras historias sobre tecnología IT!
No hay comentarios.