Guías

Por qué tu CSV muestra caracteres raros (y cómo arreglarlo)

Por el equipo de Opener6 min de lectura

Los caracteres raros como «Ã©» o «Ð¡ÑƒÐ¼Ð°» significan que el CSV se guardó con una codificación de texto y se abrió como si fuera otra: las letras siguen en el archivo, solo que se están decodificando mal. Ábrelo con la codificación correcta (el Visor de CSV la detecta automáticamente) y guarda una copia en UTF-8. Los signos de interrogación («????») son otra cosa: normalmente significan que las letras ya se perdieron al escribir el archivo.

Qué es una codificación, en un minuto

Un archivo CSV es texto plano, y en el disco el texto no es más que una lista de números (bytes). Una codificación es la tabla que dice qué número corresponde a qué letra. Para las letras inglesas básicas y los dígitos casi todas las codificaciones coinciden, y por eso los números de tu exportación del banco se ven bien mientras los nombres y las descripciones se convierten en basura.

Las tres que te encontrarás en las exportaciones de programas de contabilidad y de bancos:

Normalmente el propio archivo no indica qué codificación usa. El programa que lo abre tiene que adivinarlo y, si se equivoca, obtienes mojibake, el nombre técnico de este texto ilegible.

Leer la basura: qué te dice cada patrón

El tipo de basura es una pista de lo que ha fallado.

Ves Esperabas Qué ha pasado
é, ü, € é, ü, € Archivo UTF-8 abierto como Windows-1252
Сума (muchas Ð y Ñ) Сума Cirílico en UTF-8 abierto como Windows-1252
Ñóìà (letras latinas con tilde) Сума Archivo Windows-1251 abierto como Windows-1252
Cafй Café Archivo Windows-1252 abierto como Windows-1251
� (rombo negro con ?) cualquier letra Archivo antiguo abierto como UTF-8
???? cualquier letra Letras perdidas al guardar el archivo

Las parejas como «Ã» + algo o «Ð»/«Ñ» + algo son la huella de un UTF-8 leído con una codificación antigua: cada letra que no es del inglés ocupa dos bytes en UTF-8, y la tabla antigua muestra cada byte como un símbolo aparte. Es una buena noticia: no se ha perdido nada, y abrir el archivo como UTF-8 lo arregla.

Los signos de interrogación sueltos son una mala noticia. Suelen aparecer cuando un programa intentó guardar el texto en una codificación que no tiene sitio para esas letras (por ejemplo, cirílico en Windows-1252) y sustituyó cada una por ?. Las letras originales ya no están en el archivo y ningún visor puede recuperarlas. La solución es volver a exportar desde el sistema de origen y elegir UTF-8, o la codificación regional correcta, si el cuadro de exportación lo permite.

El BOM: por qué Excel se equivoca con UTF-8

Un archivo UTF-8 puede empezar con tres bytes invisibles llamados marca de orden de bytes (BOM, por sus siglas en inglés). Es una indicación que dice «este archivo está en UTF-8».

Cuando haces doble clic en un CSV, Excel se fía mucho de esa indicación. Con BOM suele leer bien el UTF-8; sin él, a menudo supone la codificación antigua de tu equipo, y así es exactamente como una exportación UTF-8 impecable de un banco se convierte en «Ð¡ÑƒÐ¼Ð°». Otros programas hacen lo contrario y muestran el BOM como basura del tipo  al principio del primer encabezado de columna. Si lo ves, el archivo está en UTF-8 y el BOM se está mostrando como texto.

Solución 1: ábrelo con detección automática

Lo más rápido es dejar que algo detecte la codificación por ti. El Visor de CSV de Opener prueba primero con UTF-8 y, según el texto, recurre a Windows-1251 o Windows-1252, así que los nombres y las descripciones aparecen bien sin asistente de importación. También detecta el separador: coma, punto y coma, tabulación o barra vertical.

El archivo se lee en tu navegador y no se sube a ningún sitio, algo importante cuando se trata de nóminas, facturas o extractos bancarios. Para arreglar el archivo de cara a otros programas, usa el botón de exportar: obtienes una copia limpia de la tabla en UTF-8 (de la vista actual, así que borra antes cualquier búsqueda si quieres todas las filas). Si tu problema es que todo acaba en una sola columna, y no que las letras salgan mal, consulta por qué un CSV se abre en una sola columna.

Solución 2: impórtalo en Excel con el «Origen del archivo» correcto

No hagas doble clic en el archivo. Abre un libro en blanco y usa la importación «Desde el texto/CSV» de la pestaña «Datos». La ventana de vista previa tiene una lista Origen del archivo en la que eliges la codificación:

Cambia entre ellas y fíjate en la vista previa: en cuanto los nombres se vean bien, habrás dado con la correcta. Después carga los datos. Si tienes que reenviar el archivo, guárdalo desde Excel con el tipo «CSV UTF-8» en lugar del «CSV» a secas, que puede volver a usar la codificación antigua.

Solución 3: Hojas de cálculo de Google, LibreOffice o un editor de texto

Hojas de cálculo de Google. Importar un CSV en Hojas de cálculo de Google («Archivo» → «Importar») funciona bien con archivos UTF-8, y el cuadro de importación te deja elegir el separador. Es una vía menos fiable para los archivos antiguos: si una exportación en Windows-1251 o Windows-1252 sigue mostrando letras ilegibles, conviértela a UTF-8 con alguno de los otros métodos e importa esa copia.

LibreOffice Calc. Al abrir un CSV, LibreOffice muestra un cuadro de importación de texto con una lista Juego de caracteres. Elige Unicode (UTF-8), cirílico (Windows-1251) o Europa occidental (Windows-1252) y la vista previa se actualiza al momento. Es gratuito y funciona en Windows, macOS y Linux.

Un editor de texto. Editores como el Bloc de notas en Windows, TextEdit en macOS o un editor de código como VS Code te dejan elegir la codificación al guardar. El problema: el editor tiene que abrir primero el archivo con la codificación correcta. Si el texto se ve bien en el editor, guárdalo como UTF-8. Si ya se ve mal ahí, al guardar solo conservarás la basura: vuelve a abrirlo antes con la codificación correcta.

Preguntas frecuentes

¿Puedo arreglar los «????» de mi CSV?

Normalmente no. Los signos de interrogación significan que los caracteres se sustituyeron al escribir el archivo, así que las letras originales no están en él. Vuelve a exportarlo desde el programa de contabilidad o desde el banco y elige UTF-8 si es posible.

¿Qué codificación debo usar al guardar o exportar?

UTF-8. Guarda todos los alfabetos y la entiende cualquier programa moderno. Si tus compañeros lo abren con doble clic en Excel, usa la opción «CSV UTF-8» de Excel para que el archivo empiece con BOM.

¿Cambiar la codificación cambia mis números?

No. Los dígitos, los puntos y las comas son iguales en UTF-8, Windows-1251 y Windows-1252, así que los importes y las fechas no se ven afectados. Solo cambian las letras que no son del inglés básico.

¿Es seguro arreglar una exportación del banco online?

Solo si la herramienta no la sube. El Visor de CSV decodifica y exporta el archivo íntegramente en tu navegador, así que el extracto nunca sale de tu dispositivo.