Entendiendo las Codificaciones de Caracteres: ASCII, Unicode y UTF-8
¿Alguna vez has abierto un archivo de texto y has visto un montón de caracteres extraños o símbolos como é?
Esto se llama Mojibake (texto distorsionado), y ocurre cuando la computadora está confundida sobre qué "Codificación de Caracteres" usar.
Pero, ¿qué es exactamente la codificación de caracteres? Profundicemos en los fundamentos de cómo las computadoras manejan el texto.
1. Las Computadoras Solo Conocen Números
En el nivel más bajo, las computadoras solo entienden binario: 0s y 1s.
Para almacenar texto, necesitamos un mapa que asigne un número a cada carácter.
A->65B->66!->33
Este sistema de mapeo se llama Juego de Caracteres (Character Set).
2. ASCII: El Estándar Americano (1963)
El primer estándar ampliamente utilizado fue ASCII (American Standard Code for Information Interchange).
Usaba 7 bits para representar 128 caracteres:
- Letras inglesas (A-Z, a-z)
- Números (0-9)
- Puntuación básica
- Códigos de control (nueva línea, tabulador)
Esto era genial para los angloparlantes. Pero, ¿qué pasa con el resto del mundo?
ASCII no tenía forma de representar acentos (é, ñ), y mucho menos chino o emojis.
3. El Caos del "ASCII Extendido"
Para soportar otros idiomas, diferentes regiones crearon sus propias extensiones de 8 bits de ASCII.
- ISO-8859-1 (Latin-1): Añadió acentos de Europa Occidental.
- Windows-1252: Similar a Latin-1 pero con algunas diferencias.
- Shift_JIS: Para japonés.
- EUC-KR: Para coreano.
El Problema:
Si abrías un archivo guardado en Shift_JIS usando ISO-8859-1, se vería como basura. No había un estándar único que cubriera a todos.
4. Unicode: Un Anillo para Gobernarlos a Todos
Unicode fue creado para resolver este caos. Su objetivo: Asignar un número único (Code Point) a cada carácter en cada idioma.
A->U+0041é->U+00E9한->U+D55C💩->U+1F4A9
Unicode define actualmente más de 149,000 caracteres.
Sin embargo, Unicode es solo una lista de números. No nos dice cómo almacenar esos números en bytes. Ahí es donde entran las Codificaciones.
5. UTF-8: La Solución Genial
Podrías pensar, "¿Por qué no usar simplemente 32 bits (4 bytes) para cada carácter?" (Esto es lo que hace UTF-32).
Pero eso cuadruplicaría el tamaño del archivo para texto en inglés, que solo necesita 8 bits.
Entra UTF-8 (Unicode Transformation Format - 8-bit).
Es una Codificación de Ancho Variable:
- Caracteres ASCII estándar usan 1 byte. (¡Compatible con ASCII!)
- Escrituras europeas usan 2 bytes.
- Escrituras asiáticas (CJK) usan 3 bytes.
- Emojis usan 4 bytes.
Cómo funciona
- Si un byte comienza con
0, es un carácter ASCII de un solo byte. - Si comienza con
110, es el inicio de una secuencia de 2 bytes. - Si comienza con
1110, es el inicio de una secuencia de 3 bytes.
Este diseño brillante hace que UTF-8 sea eficiente para el inglés (mismo tamaño que ASCII) mientras es capaz de soportar todos los caracteres del mundo.
Conclusión
Hoy, UTF-8 es el estándar dominante, utilizado por más del 98% de los sitios web.
Cuando guardes un archivo, elige siempre UTF-8 (sin BOM). Asegura que tu texto será legible por cualquier persona, en cualquier lugar, en cualquier dispositivo.
Consejo Pro: Si ves
éen lugar deé, generalmente significa que un archivo UTF-8 está siendo malinterpretado como Windows-1252. Si ves ``, a menudo significa que un archivo binario o una codificación incompatible está siendo leída como texto.
Explora herramientas relacionadas
Prueba estas herramientas gratuitas de Pockit