O que é mojibake?

Mojibake é o nome técnico dos caracteres estranhos: ç em vez de ç, ã em vez de ã ou é em vez de é. Ele aparece quando um texto é salvo em uma codificação e lido em outra – e, na maioria dos casos, pode ser totalmente corrigido. Cole um texto quebrado abaixo e experimente.

Funciona com texto e com estes arquivos:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • TSV
  • MD
  • HTML
  • SQL
  • LOG

Por exemplo exportações do Excel, backups de bancos de dados, legendas ou código de sites.

Corrigir

  1. Solte um arquivo ou cole o texto
  2. A correção é automática
  3. Copie ou baixe
ou simplesmente arraste um arquivo para cá
  • Sem envio de arquivos. Seus arquivos são corrigidos direto no seu navegador e nunca saem do seu dispositivo.

  • Servidores na UE. O Mojibuster roda em um servidor na Finlândia (UE); vale o Regulamento Geral sobre a Proteção de Dados (RGPD). Texto do RGPD (EUR-Lex)

De onde vem a palavra

Mojibake (文字化け) é japonês: “moji” significa “caractere” e “bake”, “transformação”. Nos anos 90, os computadores japoneses usavam várias codificações ao mesmo tempo – Shift_JIS, EUC-JP e ISO-2022-JP –, e e-mails e sites ilegíveis eram coisa do dia a dia. A palavra pegou e chegou ao inglês. No Brasil e em Portugal, fala-se mais em “caracteres estranhos” ou “acentos errados”.

Como o mojibake acontece

O computador guarda texto como bytes. A codificação define quais bytes representam cada caractere. Em UTF-8, o ç é salvo como os dois bytes C3 A7. Um programa que lê esses bytes como Windows-1252 mostra um caractere por byte: Ã para C3 e § para A7.

Nada se perde nessa etapa – os bytes continuam lá, só são lidos do jeito errado. Por isso o mojibake quase sempre tem conserto: o Mojibuster transforma os caracteres errados de volta em bytes e os lê corretamente.

Texto UTF-8 lido como Windows-1252

Mojibake

Informação, coração, pão – R$ 5,00

Corrigido

Informação, coração, pão – R$ 5,00

Mojibake em outros idiomas

  • Japonês: 縺薙s縺ォ縺。縺ッ em vez de こんにちは – UTF-8 lido como Shift_JIS. Mais na página em japonês.
  • Chinês: 浣犲ソ em vez de 你好 – UTF-8 lido como GBK. Em chinês, isso se chama 乱码 (luànmǎ, “código caótico”).
  • Russo: Привет em vez de Привет – UTF-8 lido como Windows-1251. Os russos chamam isso de “krakozyabry”.
  • Português, espanhol, francês…: ç, õ ou € em vez de ç, õ ou € – a forma mais comum no mundo.

Causas típicas

  • O Excel abre um CSV em UTF-8 sem BOM com dois cliques como se fosse ANSI: Excel com acentos errados.
  • Uma exportação CSV de loja virtual, ERP ou banco é aberta com a codificação errada: corrigir CSV.
  • Um site ou e-mail declara o charset errado, ou a conexão com o banco de dados usa latin1: corrigir caracteres UTF-8.
  • As legendas foram salvas em uma codificação antiga: legendas com acentos errados.
  • Um texto já quebrado é convertido de novo – mojibake duplo como ç.

Dá sempre para corrigir?

Quase sempre, desde que os bytes estejam intactos. Não dá mais quando um programa já substituiu os caracteres por ? ou pelo caractere de substituição � – a informação original se perdeu. O Mojibuster corrige tudo o que é possível, até três níveis de codificação de uma vez, e mostra quantos caracteres foram perdidos.

Como evitar

  • Salve os arquivos em UTF-8 – CSV para o Excel como CSV UTF-8 (delimitado por vírgulas), que grava um BOM.
  • Declare a codificação: <meta charset="utf-8"> no HTML, utf8mb4 no MySQL e no MariaDB.
  • Converta o texto uma única vez, na fronteira entre dois sistemas.
  • Ao importar, escolha a codificação você mesmo em vez de deixar o programa adivinhar.

Perguntas frequentes

Como se pronuncia mojibake?

Mais ou menos “mo-dji-ba-que”, com as quatro sílabas pronunciadas.

Meu arquivo está danificado ou com vírus?

Não. Mojibake é um problema de exibição, não um vírus, e normalmente não há perda de dados. O arquivo só está sendo lido com a codificação errada.

Qual a diferença entre mojibake e �?

Caracteres estranhos como ç ainda contêm os bytes originais e podem ser corrigidos. O símbolo � indica que um programa não conseguiu ler um byte e o substituiu – esse caractere se perdeu.

Meu texto é enviado para algum servidor?

Não. O Mojibuster corrige o texto no seu navegador. Ele não é enviado nem armazenado.

Mais guias