Qué es el código Unicode: guía completa, usos y codificaciones

Última actualización: 20 de agosto de 2025
  • Unicode asigna un punto de código único a cada carácter y sincroniza su repertorio con ISO/IEC 10646.
  • Las formas UTF-8, UTF-16 y UTF-32 codifican los mismos caracteres y permiten conversión sin pérdida.
  • Normalización, Bidi y propiedades de la UCD garantizan comparación, ordenación y renderizado coherentes.
  • Adoptar Unicode (preferiblemente UTF-8 en la web) evita corrupción y facilita la internacionalización.

Ilustración genérica sobre Unicode

Unicode es el idioma común que hablan los ordenadores cuando manejan texto: asigna un número único a cada carácter y símbolo, de casi cualquier sistema de escritura, para que se pueda almacenar, procesar y compartir sin líos entre plataformas y países.

Este estándar surgió para superar las limitaciones de los viejos juegos de caracteres (el set ASCII, páginas de códigos, EBCDIC, etc.), que se quedaban cortos o eran incompatibles entre sí, y hoy está sincronizado con ISO/IEC 10646, mantiene algoritmos (como el bidireccional) y define propiedades y reglas de normalización para que todo funcione de forma coherente.

¿Qué es Unicode y por qué es tan importante?

Unicode es un estándar de codificación de caracteres universal y en constante evolución que describe cada carácter con un nombre, un punto de código (code point) y un conjunto de propiedades (script, categoría, direccionalidad, mayúsculas/minúsculas, etc.). El Unicode Technical Committee (UTC), dentro del Unicode Consortium, lo mantiene en sincronía con el estándar ISO/IEC 10646.

Su objetivo es la universalidad, la uniformidad y la unicidad: un repertorio amplio que permita intercambiar texto multilingüe sin ambigüedades, con reglas claras y reproducibles. Gracias a ello, tecnologías modernas (sistemas operativos, navegadores, XML, Java, bases de datos) pueden mezclar scripts latinos, árabes, ideogramas CJK, emojis, símbolos técnicos o musicales en el mismo documento.

Caracteres, glifos y puntos de código

En Unicode, un carácter es una unidad de información abstracta y un punto de código es su identificador numérico. Un glifo es la forma visual (lo que ves en pantalla), que depende de la fuente. Un mismo carácter puede tener varios glifos y, a veces, un glifo representa más de un carácter.

La notación habitual de un punto de código es U+XXXX en hexadecimal. Ejemplos ilustrativos del material analizado: la ‘l’ minúscula es U+006C, la ‘ü’ minúscula precompuesta es U+00FC, la ‘é’ es U+00E9 y la beta griega: la mayúscula es U+0392 y la minúscula U+03B2 (en algunos textos se cita ‘β’ con U+0392, pero ese código corresponde a la mayúscula ‘Β’).

El espacio de códigos de Unicode tiene 1.114.112 posiciones posibles (hasta U+10FFFF), organizadas para cubrir y clasificar todos los sistemas de escritura y símbolos, con decenas de miles de asignaciones efectivas y en crecimiento en cada versión.

Planos (planes), áreas y bloques

Unicode divide su espacio en 17 planos de hasta 65.536 puntos de código cada uno. Esta organización facilita agrupar scripts y símbolos relacionados y encontrar rápidamente lo que buscas.

Planos más relevantes: el Plano Multilingüe Básico (BMP, plano 0) reúne la práctica totalidad de alfabetos modernos y muchos símbolos; el Suplementario Multilingüe (SMP, plano 1) guarda scripts históricos y símbolos técnicos (p. ej., musicales y matemáticos); el Suplementario Ideográfico (SIP, plano 2) amplía los ideogramas CJK; el plano 14 (SSP) incluye etiquetas especiales; y los planos 15 y 16 son de uso privado.

Bloques y áreas: los planos se subdividen informalmente en áreas y formalmente en bloques contiguos. Los bloques se usan para tabular y documentar caracteres, aunque no siempre corresponden a agrupaciones lingüísticas con significado.

  Cómo editar el archivo hosts: Guía Completa para Windows, Mac y Linux

Ideogramas CJK y el proyecto Unihan

Los ideogramas de Asia oriental (han) se unifican en Unicode con variaciones estilísticas por región, pero refiriéndose al mismo carácter abstracto. Para su gestión existe el Ideographic Rapporteur Group (IRG), un grupo de ISO/IEC JTC1/SC2/WG2 con representación de China, Japón, Corea, Vietnam, Hong Kong, Macao, Singapur, EE. UU., entre otros.

La base de datos Unihan reúne información auxiliar (lecturas, significados, equivalencias) imprescindible para manejar estos ideogramas en distintos idiomas y estándares históricos o corporativos.

Principales bloques CJK y extensiones:

  • Ideogramas unificados CJK (BMP, U+4E00–U+9FFF): 20.992 caracteres de uso común.
  • Extensión A (BMP, U+3400–U+4DBF): 6.592 ideogramas menos frecuentes.
  • Extensiones B–H: en SMP/SIP/TIP, suman decenas de miles más (B: U+20000–U+2A6DF, 42.720; C: U+2A700–U+2B73F, 4.154; D: U+2B740–U+2B81F, 222; E: U+2B820–U+2CEAF, 5.762; F: U+2CEB0–U+2EBEF, 7.473; G: U+30000–U+3134F, 4.939; H: U+31350–U+323AF, 4.192).
  • Otros bloques CJK relacionados: Radicales Kangxi (U+2F00–U+2FDF), Símbolos y puntuación CJK (U+3000–U+303F), Compatibilidad y formatos de compatibilidad, Suplemento de ideogramas de compatibilidad, etc.

Unicode prevé que la incorporación de ideogramas no tendrá un final absoluto y contempla mecanismos como las secuencias de descripción ideográfica para representar símbolos no codificados descomponiéndolos en componentes existentes (con cautelas: sin descomposición canónica ni garantías en operaciones como búsqueda u ordenación).

Formas de codificación: UTF-8, UTF-16 y UTF-32

Unicode define formas de transformación (UTF) que convierten puntos de código en unidades de almacenamiento para que el software pueda tratar el texto de forma eficiente según su contexto.

UTF-8 es de longitud variable, orientado a bytes, compatible con ASCII en el rango U+0000–U+007F en un solo byte. El estándar actual usa de 1 a 4 bytes por carácter; algunos textos antiguos mencionan 1–6, pero en Unicode moderno es 1–4. Es el formato dominante en la web.

UTF-16 emplea unidades de 16 bits

(uno o dos code units por carácter): la mayoría de caracteres del BMP caben en una unidad; los suplementarios usan pares suplentes (surrogate pairs) en el rango U+D800–U+DFFF.

UTF-32 es de longitud fija: 4 bytes por carácter, sencillo pero costoso en espacio; útil cuando importa la indexación directa por carácter y la memoria no es un problema.

Cómo se reparten los bits en UTF-8

El formato UTF-8 distribuye los bits del punto de código en secuencias de 1 a 4 bytes con cabeceras reconocibles, lo que evita ambigüedades y facilita la detección de límites de carácter.

Rango Unicode Patrón de bits Bytes
U+0000..U+007F 0xxxxxxx 1
U+0080..U+07FF 110yyyyy 10xxxxxx 2
U+0800..U+FFFF 1110zzzz 10yyyyyy 10xxxxxx 3
U+010000..U+10FFFF 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx 4

Una ventaja clave de UTF-8 es que evita problemas de orden de bytes (endianness) y permite procesar flujos de texto con gran eficiencia, además de ser retrocompatible con ASCII.

Esquemas de codificación, endianness y BOM

Además de las formas UTF, Unicode describe esquemas de serialización que resuelven cómo se transmiten bytes entre sistemas con diferente endianness y cómo se señalan aspectos como el orden de bytes.

  • UTF-8: no aplica endianness. Puede llevar Byte Order Mark (BOM) como pista, aunque no es requerido ni recomendado por defecto.
  • UTF-16: variantes BE/LE (big/little-endian) y BOM opcional (si falta y no lo define el protocolo, se asume big-endian).
  • UTF-32: variantes BE/LE con reglas análogas; BOM permitido como marca de orden.
  La Informática y Programación: El Futuro de la Tecnología

También existen variantes específicas como UTF-16BE/UTF-16LE y UTF-32BE/UTF-32LE (sin BOM por convención), y otras codificaciones de compatibilidad histórica como UTF-7 o UTF‑EBCDIC, además de GB18030 (equivalente chino a UTF‑8 con soporte para chino simplificado y tradicional).

Normalización, composición y equivalencias

Muchos caracteres pueden representarse como precompuestos o como secuencias de base+marcas combinantes. Ejemplos clásicos del material revisado: ‘Ä’ precompuesto es U+00C4, mientras que la forma descompuesta es ‘A’ (U+0041) + diéresis (U+0308). El vietnamita ‘ỗ’ puede representarse como ‘o’ (U+006F) + circunflejo (U+0302) + tilde (U+0303).

Unicode define formas normalizadas y dos tipos de equivalencia: canónica (mismo contenido esencial) y de compatibilidad (formas que pueden verse iguales pero con diferencias semánticas). La normalización asegura comparar cadenas de manera fiable y reducir duplicidades.

Algoritmo bidireccional y caracteres especiales

Para escrituras de derecha a izquierda, como árabe o hebreo, Unicode incorpora un algoritmo bidireccional (Bidi) estandarizado y en evolución (p. ej., revisiones en 6.3), de modo que textos mixtos con latín y árabe se representen en el orden visual correcto.

Clases de puntos de código que conviene conocer según el material recibido: caracteres gráficos (letras, signos, símbolos), de formato (invisibles que afectan al procesamiento: U+2028 salto de línea, U+2029 salto de párrafo, U+00A0 espacio duro), códigos de control heredados por compatibilidad (rangos U+0000–U+001F, U+007F, U+0080–U+009F), uso privado, posiciones reservadas, suplentes (U+D800–U+DFFF para UTF-16) y no caracteres (U+FFFE, U+FFFF en cada plano).

Unicode, ISO/IEC 10646 y otros estándares (ASCII, ANSI, páginas de códigos)

Unicode está sincronizado con ISO/IEC 10646 (UCS) y conserva mapeos a estándares previos (ASCII, ISO 8859-1, ANSI Z39.64, JIS X 0208, KS X 1001, GB 2312, GB 18030, HKSCS, CNS 11643, etc.), además de reservar espacios de uso privado para fabricantes.

ASCII frente a Unicode: ASCII es un set de 7 bits con 128 caracteres, suficiente para inglés básico, pero insuficiente para lenguas con diacríticos, ideogramas o emojis. Unicode cubre más de 140.000 caracteres y sigue aumentando, con codificación de 8/16/32 bits según la forma UTF.

ANSI y páginas de códigos: ‘ANSI’ suele referirse a páginas de códigos de Windows de 8 bits, limitadas y mutuamente incompatibles. Un equipo en OEM-Latin II que abre texto en IBM EBCDIC-Cyrillic verá caracteres incorrectos. Unicode supera este problema con un repertorio único y conversiones sin pérdida entre sus propias formas.

Implementación en sistemas (Windows, Solaris) y conversión

Windows emplea internamente UTF-16 para sus APIs modernas y ofrece funciones como MultiByteToWideChar y WideCharToMultiByte para convertir entre Unicode y páginas de códigos (SBCS/DBCS/MBCS). Si te ves obligado a convertir a una página de códigos, puede haber pérdida si no puede representar todos los caracteres.

Las aplicaciones nuevas en Windows deberían usar UTF-16 de forma interna y dejar la conversión a los bordes (I/O, protocolos), minimizando la corrupción. Aún así, Windows mantiene compatibilidad con páginas de códigos cuando es inevitable.

Oracle Solaris 11, según la documentación revisada, soporta Unicode 6.0 e ISO/IEC 10646:2011 a nivel de sistema, usando UTF-8 como formato por defecto en sus conjuntos de parámetros, lo que ahorra problemas de orden de bytes y preserva ASCII de forma transparente.

Unicode en la práctica: web, documentos y programación

En la web, lo usual es servir y almacenar contenido en UTF-8. En HTML, declara ‘<meta charset=»UTF-8″>’ para garantizar compatibilidad, y usa entidades numéricas hex cuando sea necesario (ejemplo: el euro ‘&#x20AC;’).

  Todo sobre el overclocking: qué es, ventajas, riesgos y cómo influye en tu PC

En Word, puedes insertar símbolos Unicode fácilmente colocando el cursor, yendo a Insertar > Símbolo, o escribiendo el código y pulsando Alt+X; así conviertes el valor en su carácter, siguiendo las recomendaciones habituales. Consulta también la lista de códigos Alt para insertar símbolos desde el teclado.

En lenguajes de programación: en Python 3, las cadenas ya son Unicode; en Java y C#, puedes utilizar escapes ‘\uXXXX’; en HTML, ‘&#xXXXX;’. Lo importante es que la edición, compilación y transmisión utilicen la misma codificación para evitar errores.

Copiar y pegar símbolos funciona si toda la cadena está en Unicode. Si partes usan otra codificación, pueden aparecer signos de interrogación, cuadros o símbolos extraños.

Base de datos de caracteres (UCD), propiedades y categorías

La Unicode Character Database (UCD) publica para cada punto de código su nombre, categoría, script, propiedades de mayúsculas y minúsculas, direccionalidad y otras características. Esta información es vital para que los motores de renderizado y procesamiento de texto funcionen correctamente.

Gracias a estas propiedades, diferentes componentes y algoritmos (como el ordenamiento, la segmentación de palabras o la transformación de mayúsculas/minúsculas) pueden comportarse con coherencia ante los mismos datos.

Versiones y ampliaciones del estándar: hitos destacados

Unicode crece con cada versión, incorporando nuevos scripts, símbolos y emojis. Destacan los hitos de las versiones principales: 1.0 en 1991 con 7.161 caracteres, y las sucesivas ampliaciones que han añadido miles de nuevos símbolos, ideogramas, emojis y scripts.

Por ejemplo, en 2022, la versión 15.0 sumó 4.192 ideogramas CJK adicionales y otros elementos, alcanzando aproximadamente 149.186 caracteres.

Herramientas para explorar la tabla Unicode

Existen utilidades gratuitas para buscar y analizar caracteres: Unibook Character Browser, SYMBL y Branah.com permiten consultar propiedades, nombres y bloques de caracteres, facilitando a desarrolladores y creadores de contenido encontrar rápidamente la información necesaria.

Casos de uso: formularios de direcciones, internacionalización y negocio

Permitir que los usuarios introduzcan direcciones en su idioma y script ayuda a reducir errores y mejorar la experiencia. También, la interoperabilidad de Unicode evita problemas en la conversión entre diferentes sistemas, manteniendo la integridad del texto en toda la cadena digital.

Por esto, Unicode es el elemento fundamental que garantiza que el texto permanezca final en toda la infraestructura digital, desde los formularios web hasta los sistemas de bases de datos y documentos impresos, indiferentemente si usas ‘ñ’, árabe, chino o emojis en una misma frase.

La numeración binaria
Artículo relacionado:
La numeración binaria: El lenguaje secreto de las computadoras