TTabulens RUEN Windows Abrir o app

Caracteres estranhos em DBF: como achar a codificação certa

Um arquivo DBF não tem um marcador que diga “isto é UTF-8”. A página de código ou é indicada por um único byte do cabeçalho, ou não é indicada de jeito nenhum — e então precisa ser deduzida pelo conteúdo. É assim que “Coração” vira “Cora‡Æo” ou “CoraþÒo”.

Atualizado 2026-09-30 · formato DBF

De onde vem o problema

O DBF é um formato de um byte por caractere. Qual letra um byte representa depende da página de código. O “ç” é gravado como 0x87 nas páginas DOS cp850 e cp860, mas como 0xE7 no windows-1252. Leia com a tabela errada e você obtém outro caractere:

Bytecp437 (DOS, EUA)cp850 (DOS, Europa Ocidental)cp860 (DOS, português)windows-1252
0x87ççç‡
0xC6╞ã╞Æ
0x84ääã„
0xE4ΣõΣä
0xE7τþτç
0xE9ΘÚΘé

O programa que gravou o arquivo conhecia a sua própria tabela. O programa que lê precisa pegá-la do cabeçalho — ou adivinhar. Sistemas em Clipper e dBase para DOS no Brasil costumam usar cp850 (o padrão “Multilíngue” do DOS) ou cp860 (“Português”); sistemas Windows usam windows-1252, o “Latin1” do dia a dia.

O driver de idioma: o byte 29 do cabeçalho

O byte 29 do cabeçalho de um DBF (contando a partir de zero) guarda o Language Driver ID, um código que nomeia a página de código. Os valores mais comuns:

CódigoCodificaçãoOrigem típica
0x01cp437programas DOS nos EUA, dBase e FoxPro antigos
0x02cp850programas DOS na Europa Ocidental e no Brasil
0x24cp860programas DOS configurados para português
0x03, 0x57windows-1252programas Windows, Visual FoxPro
0x64, 0x1Fcp852programas DOS na Europa Central
0x00não informadocerca de metade dos arquivos reais

O byte também pode estar errado: um arquivo foi criado por um programa, ampliado por outro, e o cabeçalho manteve o valor original. É uma dica forte, não uma garantia.

Lendo os sintomas

Um arquivo cp850 lido como windows-1252: as letras acentuadas viram símbolos
Um arquivo cp850 lido como windows-1252: as letras acentuadas viram símbolos
A página de código detectada pelo próprio arquivo: os nomes aparecem corretamente
A página de código detectada pelo próprio arquivo: os nomes aparecem corretamente

O padrão do lixo mostra o que aconteceu:

O que fazer na prática

Mais uma sutileza: os nomes dos campos também são texto e são decodificados com a mesma tabela. Se os títulos das colunas estão estragados mas os dados estão bons, os dois foram gravados em codificações diferentes.

Por que não converter simplesmente para UTF-8

A tentação é compreensível, mas o DBF não comporta isso: o tamanho do campo é dado em bytes, e as letras acentuadas ocupam dois bytes cada em UTF-8. Um campo C(20) comporta vinte letras latinas simples, mas menos letras acentuadas — o que passar do limite é cortado em silêncio.

Por isso, quando os dados são exportados de volta para DBF, a codificação é sempre de um byte, e o tamanho dos campos é recalculado a partir dos dados reais na codificação de destino. Para obter texto UTF-8 de um DBF, exporte para CSV, JSON ou XLSX.

Perguntas frequentes

Dá para achar a codificação sem abrir o arquivo?

Olhe o byte 29 do cabeçalho em um editor hexadecimal. Lembre que ele muitas vezes é zero ou está errado — o conteúdo é mais confiável.

Por que um programa lê o arquivo certo e outro não?

Quando falta o driver de idioma, os programas recorrem a alternativas diferentes: um usa a página de código do sistema do Windows, outro presume uma de DOS. O arquivo é o mesmo.

Trocar a codificação em um visualizador altera o arquivo?

Não. Só muda a forma de exibir os bytes. O arquivo fica como está até você salvar as alterações explicitamente.

Seu arquivo não sai do seu computador. A leitura acontece no navegador, em uma thread em segundo plano. A política de segurança da página proíbe enviar dados a endereços de terceiros — você pode conferir isso nas ferramentas do desenvolvedor. Depois da primeira visita, o aplicativo funciona também sem internet.
Abrir o aplicativo Baixar para Windows

Grátis para uso pessoal. Seu arquivo não é enviado a nenhum servidor. Versão para Windows — 3.5 MB, sem instalação: detalhes. Para organizações — licença.

Leia também