Caso 1: � em um arquivo que na verdade está certo
Se um editor, player ou navegador mostra informa��o ou Jo�o, o arquivo geralmente está salvo em Windows-1252 (ANSI) ou ISO-8859-1 e é lido como UTF-8. O byte da letra acentuada é inválido em UTF-8, então o programa coloca o caractere de substituição � na hora de exibir. O arquivo em si ainda contém o byte certo.
Solução: solte o arquivo original no quadro acima. O Mojibuster detecta a codificação ao ler e converte o arquivo para UTF-8. Importante: use o próprio arquivo, não copie o texto do programa – ao copiar, o � fica gravado para sempre.
Caso 2: o ? ou o � está gravado no texto
Se um programa salvou ou repassou o texto com o caractere de substituição, o caractere original se perdeu. O mesmo vale para ?: programas o inserem quando um caractere não existe na codificação de destino – por exemplo, ao salvar como ASCII ou ao gravar em uma coluna de banco de dados que não aceita ç.
Não dá para calcular nada de volta, porque todas as letras acentuadas viraram o mesmo símbolo: em a??o pode estar ação ou qualquer outra coisa. Em vez de adivinhar, o Mojibuster mostra quantas posições foram afetadas. Só a origem ajuda: repetir a exportação ou usar um backup.
Causas típicas de pontos de interrogação
- Banco de dados: a coluna ou a conexão usa
latin1ouascii, mas os dados chegam em UTF-8, e o MySQL troca caracteres desconhecidos por?. Como configurar certo: corrigir caracteres UTF-8. - PowerShell 5.1: o
Export-Csvgrava em ASCII por padrão e troca letras acentuadas por?. Use-Encoding UTF8. - Python:
encode('ascii', errors='replace')troca caracteres por?sem avisar. - Console: o Prompt de Comando do Windows mostra como
?os caracteres que sua página de código não conhece. Normalmente só a exibição está errada, não o arquivo.
Como descobrir qual é o seu caso
- Abra o arquivo em um editor que mostre a codificação, como o Notepad++ (no canto inferior direito, na barra de status). Se aparecer “ANSI” ou “Windows-1252”, é o caso 1.
- Solte o arquivo no Mojibuster. Se o resultado disser “Lido como Windows-1252 (ANSI)” e os acentos voltarem, era o caso 1.
- Se o Mojibuster informar caracteres perdidos, é o caso 2. Aí só uma nova exportação resolve.
Se em vez de interrogações você vê sequências como ção, é outro erro – e quase sempre tem conserto: ção em vez de ção. Para “ e º, veja aspas e símbolos quebrados.
Perguntas frequentes
O Mojibuster consegue transformar ? de volta em letras?
Não. Um ? pode estar no lugar de qualquer letra – a informação não existe mais. O Mojibuster não mexe nessas posições, mas mostra quantas são.
Por que vejo � em um programa e em outro não?
Então o arquivo está certo, e só um dos programas o lê com a codificação errada. Converta para UTF-8 com o Mojibuster, e os dois vão mostrar tudo certo.
O que é o caractere �?
É o caractere de substituição U+FFFD. Programas o inserem quando não conseguem ler um byte como caractere. Ele indica um erro de codificação e não faz parte do texto de verdade.