Corrigir caracteres quebrados

Quando os acentos viram café, è ou ’, o texto não está quebrado: ele foi lido com a tabela errada. Aqui a cadeia é percorrida de trás para frente, e o texto que já está certo fica intocado.

Ou solte um arquivo de texto aqui

clique para escolher um (.txt, .csv, .srt, .vtt, .md, .json), ele fica no seu dispositivo

Seu texto e seus arquivos ficam no navegador: nada é enviado a nenhum servidor.

Como usar

Cole o texto estragado na caixa e aperte “Corrigir o texto”, ou solte um arquivo .txt, .csv, .srt, .vtt, .md ou .json. A ferramenta diz qual erro de codificação aconteceu, quantos caracteres foram recuperados e mostra alguns exemplos de antes e depois, para você conferir se o resultado é mesmo o que espera antes de copiar ou baixar.

Por que acontece o “café”

Em UTF-8 as letras acentuadas não cabem em um único byte: o é é o par C3 A9, o à é C3 A0, o apóstrofo tipográfico ’ é E2 80 99 e o espaço não separável é C2 A0. Quando um programa recebe esses bytes mas acredita que estão escritos em Windows-1252 (a velha tabela “ANSI”, em que cada byte é uma letra), ele os mostra um a um: C3 A9 vira é, C2 A0 vira  seguido de um espaço e E2 80 99 vira ’. É sempre o mesmo defeito, e é por isso que textos em português, italiano, espanhol e francês se desfazem quase frase a frase, enquanto o inglês muitas vezes escapa ileso.

Como esta página conserta

A cadeia é percorrida de trás para frente: cada caractere volta ao byte que era segundo a tabela Windows-1252 (incluindo os 5 códigos que essa tabela deixa indefinidos, que os programas deixam passar sem alteração), e depois esses bytes são lidos de novo como UTF-8. Ao contrário de um localizar e substituir às cegas, o texto que já está certo nunca é tocado: um é sozinho não forma uma sequência UTF-8 válida, então fica exatamente como está. Quando o defeito aconteceu duas vezes seguidas (a famosa dupla codificação, a do é), a rodada é repetida quantas vezes for preciso, até quatro. Há também a tabela Mac OS Roman, para textos que vêm de Macs antigos, reconhecíveis por seus √© e ‚Äô. Vale conhecer ainda uma última precaução: num título todo em maiúsculas, um Ù seguido de uma aspa angular de fechamento forma, por pura coincidência, um par UTF-8 válido. É por isso que as sequências que começam com um caractere ambíguo só são consertadas quando o texto tem pelo menos três delas, e as sequências que virariam caracteres que nenhum texto real contém (alfabeto fonético, armênio) são deixadas em paz.

O problema oposto também, quando o próprio arquivo é antigo

Se você carregar um arquivo, a ferramenta olha primeiro os bytes de verdade. Um arquivo que não é UTF-8 válido é lido com a tabela Windows-1252 e devolvido convertido, e o mesmo vale para os arquivos UTF-16 que saem do Bloco de Notas e de alguns programas empresariais. Assim as duas metades do problema ficam cobertas: texto bom lido do jeito errado e um arquivo antigo que precisa virar UTF-8. O botão de download acrescenta, se você deixar a caixa marcada, a marca BOM de que o Excel precisa para abrir um CSV sem estragar os acentos de novo.

O que ela não consegue fazer, dito logo de cara

Caracteres que aparecem como � (ou como símbolos de controle invisíveis) não podem ser recuperados: esse byte já foi jogado fora por quem salvou o arquivo, e nenhum programa consegue adivinhá-lo. O mesmo vale para acentos que viraram um ponto de interrogação. A ferramenta conhece as duas tabelas ocidentais mais comuns, Windows-1252 e Mac OS Roman, então não reconstrói cirílico lido como Windows-1251 nem japonês em Shift-JIS. Ela não mexe em entidades HTML como é ou é, pois são outro problema, e nunca altera o conteúdo: só a codificação é consertada. Tudo roda no seu navegador, então o arquivo não é enviado para lugar nenhum.

Ferramentas relacionadas