unicode utf8 gbk encodings shift-jis web-dev

Guía para Principiantes sobre Codificación de Caracteres y Unicode

Deje de ver texto con errores. Entienda UTF-8, UTF-16, GBK y Shift-JIS, y cómo el BOM afecta a sus archivos.

2026-04-11

Codificaciones de Caracteres y Unicode: La Guía Definitiva de UTF-8, UTF-16 y más

En los inicios de la informática, representar texto era sencillo: cada carácter cabía en 7 u 8 bits (ASCII). Pero a medida que la informática se globalizó, necesitamos una forma de representar cada carácter de cada idioma del mundo. Esta es la historia de Unicode y las codificaciones que lo impulsan.

1. El Estándar Unicode

Unicode no es una codificación en sí, sino un conjunto de caracteres universal. Asigna un número único, llamado punto de código, a cada carácter (por ejemplo, U+0041 para la 'A'). Sin embargo, todavía necesitamos una forma de almacenar estos números en binario.

UTF-8 (El Rey de la Web)

UTF-8 es una codificación de ancho variable que utiliza de 1 a 4 bytes por carácter. Es retrocompatible con ASCII.

  • Pros: Eficiente para idiomas occidentales, robusto contra la corrupción de datos y el estándar universal para la web.

UTF-16

Utiliza 2 o 4 bytes. Es la codificación nativa de Windows (NTFS) y de muchos entornos de programación como Java y JavaScript.

UTF-32

Utiliza exactamente 4 bytes para cada carácter. Aunque es sencillo para la indexación, es muy ineficiente en cuanto a memoria.


2. Codificaciones Heredadas y Regionales

Antes de que Unicode se volviera dominante, las diferentes regiones utilizaban sus propios estándares, muchos de los cuales todavía se encuentran hoy en día.

Codificaciones Chinas (Familia GB)

  • GB2312: El estándar inicial para el chino simplificado.
  • GBK: Una extensión de GB2312 para admitir más caracteres.
  • GB18030: El estándar obligatorio actual en China, que admite chino simplificado y tradicional y se mapea completamente a Unicode.

Codificaciones Japonesas

  • Shift-JIS: Históricamente la codificación más popular para el japonés, utilizada extensamente en Windows y sitios web antiguos.

Coreano y Chino Tradicional

  • EUC-KR: Una codificación heredada común para el coreano.
  • Big5: El estándar para caracteres de chino tradicional utilizado principalmente en Taiwán y Hong Kong.

3. Codificaciones Heredadas Occidentales

ISO-8859-1 (Latin-1)

Una codificación de 8 bits que cubre la mayoría de los idiomas de Europa Occidental.

Windows-1252

Una ligera variación de ISO-8859-1 utilizada por defecto en versiones antiguas de Windows.


4. Matices Técnicos: BOM y Endianness

Marca de Orden de Bytes (BOM)

El BOM es una secuencia especial de bytes al comienzo de un archivo de texto (por ejemplo, EF BB BF para UTF-8). Le indica al software qué codificación y orden de bytes se está utilizando. Aunque es útil para UTF-16, a menudo se desaconseja para UTF-8 en entornos web.

Little Endian vs. Big Endian

Relevante para UTF-16 y UTF-32, se refiere al orden en que se almacenan los bytes en la memoria.


Resumen Comparativo

Codificación Bytes por Carácter Compatibilidad Mejor Uso
UTF-8 1-4 ASCII Web, Linux, Mac
UTF-16 2 o 4 Ninguna Windows, Java, JS
GB18030 1, 2 o 4 GBK Cumplimiento del Gobierno Chino
ASCII 1 Universal Sistemas heredados, solo inglés

Conclusión

El mundo se ha decantado mayoritariamente por UTF-8 como estándar para el intercambio de datos. Sin embargo, comprender las codificaciones heredadas como GBK o Shift-JIS sigue siendo vital cuando se trata de sistemas heredados o software regional específico. En caso de duda, utilice siempre UTF-8 sin BOM para aplicaciones modernas.