Interrogação no lugar dos acentos: o que ? e � significam

Seu texto mostra informa��o ou S?o Paulo em vez de informação e São Paulo? ? e � parecem iguais, mas têm causas diferentes: muitas vezes o arquivo está intacto e dá para recuperar, às vezes os caracteres já se perderam. Veja como descobrir qual é o seu caso.

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)

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 latin1 ou ascii, 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-Csv grava 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

  1. 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.
  2. Solte o arquivo no Mojibuster. Se o resultado disser “Lido como Windows-1252 (ANSI)” e os acentos voltarem, era o caso 1.
  3. 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.

Mais guias