Informática básica

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é la ñ sale como «Ã±».Se guarda en UTF-8 → Se lee como Windows-1252 → Sale «España»ESQUEMASe guarda en UTF-8Se lee comoWindows-1252Sale «España»
Por qué la ñ sale como «Ã±».

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.

Unicode y UTF-8 no son lo mismo.Unicode: Catálogo de caracteres; La é es el U+00E9. UTF-8: Cómo se guardan en bytes; La ñ ocupa 2 bytesCOMPARATIVAUnicodeCatálogo de caracteresLa é es el U+00E9UTF-8Cómo se guardan en bytesLa ñ ocupa 2 bytes
Unicode y UTF-8 no son lo mismo.

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:

  1. 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.
  2. En Origen del archivo, elige Unicode (UTF-8) y comprueba en la vista previa que las tildes se ven bien.
  3. 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.

Abrir bien un CSV en Excel.1. Datos → Obtener datos → De un archivo 2. Elige texto o CSV 3. Origen: Unicode (UTF-8) 4. Comprueba la vista previa y CargarPASO A PASO1PASO 1Datos →Obtenerdatos → Deun archivo2PASO 2Elige textoo CSV3PASO 3Origen:Unicode(UTF-8)4FINALComprueba lavista previay Cargar
Abrir bien un CSV en Excel.

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.