De dónde viene la palabra
Mojibake (文字化け) es japonés: “moji” significa “carácter” y “bake”, “transformación”. En los años 90, los ordenadores japoneses usaban varias codificaciones a la vez – Shift_JIS, EUC-JP e ISO-2022-JP –, así que los correos y páginas web ilegibles eran algo cotidiano. La palabra se quedó y pasó al inglés y al español. En el día a día solemos hablar simplemente de “caracteres raros” o “símbolos extraños”.
Cómo se produce
Los ordenadores guardan el texto como bytes. La codificación define qué bytes corresponden a cada carácter. En UTF-8, la ñ se guarda como los dos bytes C3 B1. Un programa que lee esos bytes como Windows-1252 muestra un carácter por cada byte: Ã para C3 y ± para B1.
En este paso no se pierde nada: los bytes siguen ahí, solo se leen mal. Por eso el mojibake casi siempre tiene arreglo: Mojibuster convierte los caracteres equivocados de nuevo en bytes y los lee correctamente.
Mojibake
Año, canción, corazón – 5 €
Reparado
Año, canción, corazón – 5 €
Mojibake en otros idiomas
- Japonés:
縺薙s縺ォ縺。縺ッen vez deこんにちは: UTF-8 leído como Shift_JIS. Más en la página en japonés. - Chino:
浣犲ソen vez de你好: UTF-8 leído como GBK. En chino se llama 乱码 (luànmǎ, “código caótico”). - Ruso:
Приветen vez deПривет: UTF-8 leído como Windows-1251. En Rusia lo llaman “krakozyabry”. - Español, francés, portugués…:
ñ,áo€en vez deñ,áo€, la forma más común en todo el mundo.
Causas típicas
- Excel abre con doble clic un CSV en UTF-8 sin BOM como si fuera ANSI: Excel muestra caracteres raros.
- Una exportación CSV de una tienda online, un CRM o un banco se abre con la codificación equivocada: reparar CSV.
- Una web o un correo declara un
charsetincorrecto, o la conexión a la base de datos usalatin1: reparar caracteres UTF-8. - Los subtítulos se guardaron en una codificación antigua: subtítulos con caracteres raros.
- Un texto ya dañado se convierte otra vez: doble mojibake como
ñ.
¿Siempre se puede arreglar?
Casi siempre, mientras los bytes sigan intactos. Ya no es posible cuando un programa ha sustituido los caracteres por ? o por el carácter de reemplazo �: la información original se ha perdido. Mojibuster repara todo lo que se puede reparar, hasta tres niveles de codificación a la vez, y te indica cuántos caracteres se han perdido.
Cómo evitarlo
- Guarda los archivos en UTF-8; los CSV para Excel, como CSV UTF-8 (delimitado por comas), que añade un BOM.
- Declara la codificación:
<meta charset="utf-8">en HTML,utf8mb4en MySQL y MariaDB. - Convierte el texto una sola vez, en el límite entre dos sistemas.
- Al importar, elige la codificación tú mismo en lugar de dejar que el programa la adivine.
Preguntas frecuentes
¿Cómo se pronuncia mojibake?
Más o menos “mo-yi-ba-ke”, con la j suave como en inglés y las cuatro sílabas pronunciadas.
¿Mi archivo está dañado o tiene un virus?
No. El mojibake es un problema de visualización, no un virus, y normalmente no hay pérdida de datos. El archivo solo se está leyendo con la codificación equivocada.
¿Qué diferencia hay entre mojibake y �?
Los caracteres raros como ñ todavía contienen los bytes originales y se pueden reparar. El símbolo � indica que un programa no pudo leer un byte y lo sustituyó: ese carácter se ha perdido.
¿Se sube mi texto a algún servidor?
No. Mojibuster repara el texto en tu navegador. No se envía ni se guarda.