CSV com caracteres estranhos? Veja por que acontece e como corrigir
Caracteres estranhos como “é” ou “Сума” significam que o CSV foi salvo numa codificação de texto e aberto como se estivesse em outra — as letras continuam no arquivo, só estão sendo decodificadas do jeito errado. Abra o arquivo com a codificação certa (o Visualizador de CSV detecta sozinho) e salve uma cópia em UTF-8. Pontos de interrogação (“????”) são outra história: normalmente indicam que as letras já se perderam quando o arquivo foi gravado.
O que é codificação, em um minuto
Um arquivo CSV é texto puro, e no disco texto é só uma lista de números (bytes). A codificação é a tabela que diz qual número corresponde a qual letra. Para as letras básicas do inglês e os dígitos, quase todas as codificações concordam — por isso os números da exportação do banco aparecem certinhos, enquanto nomes e descrições viram lixo.
As três que você vai encontrar em exportações de sistemas contábeis e bancos:
- UTF-8 — o padrão moderno. Consegue guardar todos os alfabetos num único arquivo. Letras fora do inglês básico ocupam dois bytes ou mais cada uma.
- Windows-1251 — uma codificação antiga de um byte para o cirílico (ucraniano, russo, búlgaro, sérvio). Muitos sistemas contábeis antigos ainda exportam nela.
- Windows-1252 — a codificação antiga de um byte para as línguas da Europa Ocidental, incluindo o português: é, ü, ñ, ø, € e assim por diante.
Normalmente o próprio arquivo não diz qual codificação usa. O programa que o abre precisa adivinhar e, se errar, você recebe mojibake — o nome técnico desse texto embaralhado.
Lendo o lixo: o que cada padrão revela
O tipo de lixo é uma pista do que deu errado.
| Você vê | Você esperava | O que aconteceu |
|---|---|---|
é, ü, € |
é, ü, € | Arquivo UTF-8 aberto como Windows-1252 |
Сума (muitos Ð e Ñ) |
Сума | Cirílico em UTF-8 aberto como Windows-1252 |
Ñóìà (letras latinas acentuadas) |
Сума | Arquivo Windows-1251 aberto como Windows-1252 |
Cafй |
Café | Arquivo Windows-1252 aberto como Windows-1251 |
� (losango preto com ?) |
qualquer letra | Arquivo em codificação antiga aberto como UTF-8 |
???? |
qualquer letra | Letras perdidas quando o arquivo foi salvo |
Pares como “Ô + alguma coisa ou “Д/“Ñ” + alguma coisa são a impressão digital de um UTF-8 lido como codificação antiga: cada letra fora do inglês ocupa dois bytes em UTF-8, e a tabela antiga mostra cada byte como um símbolo separado. Isso é boa notícia — nada se perdeu, e abrir o arquivo como UTF-8 resolve.
Pontos de interrogação simples são má notícia. Eles costumam aparecer quando um programa tentou salvar texto numa codificação que não tem lugar para aquelas letras (por exemplo, cirílico em Windows-1252) e trocou cada uma delas por ?. As letras originais não estão mais no arquivo, e nenhum visualizador consegue trazê-las de volta. A solução é exportar de novo a partir do sistema de origem, escolhendo UTF-8 ou a codificação regional correta, se a tela de exportação oferecer essa opção.
O BOM: por que o Excel erra com UTF-8
Um arquivo UTF-8 pode começar com três bytes invisíveis chamados byte order mark (BOM, marca de ordem de bytes). É uma dica que diz “este arquivo é UTF-8”.
Quando você clica duas vezes num CSV, o Excel depende muito dessa dica. Com BOM, ele normalmente lê o UTF-8 corretamente; sem BOM, muitas vezes assume a codificação antiga do seu computador — e é exatamente assim que uma exportação UTF-8 perfeita do banco vira “Сума”. Outros programas fazem o contrário e mostram o BOM como lixo, tipo , no começo do primeiro cabeçalho de coluna. Se você vir isso, o arquivo é UTF-8 e o BOM está sendo exibido como texto.
Solução 1: abra com detecção automática
O jeito mais rápido é deixar algo detectar a codificação por você. O Visualizador de CSV do Opener tenta UTF-8 primeiro e, dependendo do texto, recorre ao Windows-1251 ou ao Windows-1252, então nomes e descrições aparecem certos sem assistente de importação. Ele também detecta o separador — vírgula, ponto e vírgula, tabulação ou barra vertical.
O arquivo é lido no seu navegador e não é enviado para lugar nenhum, o que faz diferença com folha de pagamento, notas fiscais e extratos bancários. Para corrigir o arquivo para outros programas, use o botão de exportar: você recebe uma cópia limpa da tabela em UTF-8 (da visualização atual, então limpe a pesquisa antes se quiser todas as linhas). Se o seu problema é que tudo cai numa coluna só, e não letras embaralhadas, veja por que o CSV abre em uma coluna.
Solução 2: importe no Excel com a “Origem do Arquivo” certa
Não clique duas vezes no arquivo. Em vez disso, abra uma pasta de trabalho em branco e use a importação “De Texto/CSV” da guia Dados. A janela de prévia tem uma lista Origem do Arquivo, em que você escolhe a codificação:
- 65001: Unicode (UTF-8) para arquivos que mostram
éouСума; - a opção cirílico (Windows), 1251, para exportações antigas em cirílico;
- a opção Europa Ocidental (Windows), 1252, para exportações antigas em línguas da Europa Ocidental.
Alterne entre elas e observe a prévia — no momento em que os nomes ficarem certos, você achou a codificação correta. Depois carregue os dados. Se precisar repassar o arquivo, salve-o no Excel com o tipo de arquivo “CSV UTF-8”, e não o “CSV” simples, que pode voltar a usar a codificação antiga.
Solução 3: Planilhas Google, LibreOffice ou um editor de texto
Planilhas Google. Importar um CSV no Planilhas Google (Arquivo → Importar) funciona bem com arquivos UTF-8, e a janela de importação permite escolher o separador. Para arquivos em codificação antiga, é um caminho menos confiável: se uma exportação em Windows-1251 ou Windows-1252 continuar com letras embaralhadas, converta-a para UTF-8 por um dos outros métodos e importe essa cópia.
LibreOffice Calc. Quando você abre um CSV, o LibreOffice mostra uma janela de importação de texto com uma lista Conjunto de caracteres. Escolha Unicode (UTF-8), cirílico (Windows-1251) ou Europa Ocidental (Windows-1252), e a prévia se atualiza na hora. Ele é gratuito e funciona no Windows, macOS e Linux.
Um editor de texto. Editores como o Bloco de Notas no Windows, o TextEdit no macOS ou um editor de código como o VS Code permitem escolher a codificação ao salvar. O detalhe: o editor precisa primeiro abrir o arquivo com a codificação correta. Se o texto aparece certo no editor, salve como UTF-8. Se já aparece embaralhado ali, salvar só vai preservar o lixo — reabra com a codificação certa antes.
Perguntas frequentes
Dá para corrigir “????” no meu CSV?
Normalmente não. Pontos de interrogação significam que os caracteres foram substituídos quando o arquivo foi gravado, então as letras originais não estão no arquivo. Exporte de novo do sistema contábil ou do banco, escolhendo UTF-8 se possível.
Que codificação devo usar ao salvar ou exportar?
UTF-8. Ela guarda todos os alfabetos, e todo programa moderno a entende. Se seus colegas abrem o arquivo clicando duas vezes no Excel, use a opção “CSV UTF-8” do Excel para o arquivo começar com BOM.
Mudar a codificação altera os meus números?
Não. Dígitos, pontos e vírgulas são iguais em UTF-8, Windows-1251 e Windows-1252, então valores e datas não são afetados. Só mudam as letras fora do inglês básico.
É seguro corrigir uma exportação do banco online?
Só se a ferramenta não enviar o arquivo. O Visualizador de CSV decodifica e exporta o arquivo inteiramente no seu navegador, então o extrato nunca sai do seu dispositivo.