Letras raras como «Ã±» en vez de «ñ»: qué son Unicode y UTF-8
Cuando «España» aparece como «España» el texto no está roto: se está leyendo con la codificación equivocada. Qué es UTF-8 y cómo arreglarlo.
Abres un archivo y donde debería poner «España» pone «España», «canción» aparece como «canción» o salen rombos con una interrogación (�). El texto no está estropeado: se está leyendo con un «diccionario» distinto del que se usó al guardarlo.
Por qué pasa
Un ordenador no guarda letras, guarda bytes (números del 0 al 255). Una codificación de caracteres es la regla que dice qué bytes corresponden a cada letra. El W3C lo compara con una clave: sin la correcta, los datos parecen basura.
- Unicode es el gran catálogo que da un número a casi todos los caracteres de todos los idiomas, y también a los emojis: la é es el U+00E9.
- UTF-8 es la forma más usada de guardar esos números en bytes, y la que usa la gran mayoría de las páginas web. Las letras sin tilde ocupan 1 byte; la ñ y las vocales con tilde, 2; otros caracteres, 3 o 4.
El problema aparece cuando un texto guardado en UTF-8 se lee con una codificación antigua (como la de Windows para Europa occidental, Windows-1252). La «ñ» son dos bytes en UTF-8, y la codificación antigua los lee como dos letras distintas: «Ã±». Por eso, en español, estos fallos casi siempre empiezan por «Ã»: «Ã©» es una é y «Ã³», una ó.
El rombo con interrogación (�) es otro caso: el programa encuentra bytes que no son válidos en la codificación que espera y pone ese símbolo de sustitución. Y un cuadrado vacío suele indicar que falta la fuente: el carácter está bien, pero tu tipo de letra no lo tiene.
Cómo arreglarlo
Un CSV que se ve mal en Excel. Es el caso más común. Excel abre bien un CSV en UTF-8 si se guardó con una marca especial al principio (BOM); si no, lee mal las tildes. Para abrirlo bien:
- En Excel, ve a la pestaña Datos → Obtener datos → De un archivo, elige la opción de texto o CSV y selecciona el archivo.
- En Origen del archivo, elige Unicode (UTF-8) y comprueba en la vista previa que las tildes se ven bien.
- Pulsa Cargar.
Un archivo de texto. El Bloc de notas de Windows y casi todos los editores permiten elegir la codificación al guardar como (y muestran la actual en la barra inferior). Guarda en UTF-8.
Una página web. Si haces webs, guarda los archivos en UTF-8 y declara la codificación en la primera línea del <head>: <meta charset="utf-8">. Declararla no convierte el archivo: tiene que estar guardado de verdad en UTF-8.
Un correo o una web ajena. Si está mal en origen, no siempre se puede arreglar desde tu lado. En el navegador casi nunca hace falta tocar nada: las webs actuales declaran bien su codificación.
La regla de oro
El W3C lo resume así: usa siempre UTF-8 para tus textos, tus archivos y tus datos, en todo el camino. Si todo el sistema usa la misma codificación, no hay conversiones y no hay letras raras.
