Ler arquivo com acentuação

Olá,

estou lendo um arquivo DBF, totalmente acentuado em Português, do qual não posso garantir que foi escrito como ISO-8859-1.

usando:

protected String characterSetName = "ISO8859_1";


byte b_array[] = new byte[ this.header.fieldArray[i].getFieldLength()];
dataInputStream.read( b_array);
recordObjects[i] = new String( b_array, characterSetName);
System.out.print("\n Record “+i+ " :”+recordObjects[i].toString());
break;

Obtenho este tipo de retorno:
Wanderl?ndia Vicentin¢polis VarjÆo, entre outros.

Consigo abrir o arquivo em um aplicativo público (TabWin) e os dados estão escritos corretamente: Wanderlândia, Vicentinópolis, Verjão…

Alguma sugestão de como ler o arquivo corretamente?

Desde já agradeço.

Olá

Tente outros encondings, principalmente aqueles que sejam compatíveis com o que você faz na linha de comando. Lembre-se que o padrão DBF é do tempo do DOS.

[]s
Luca

Pode ser que seu arquivo DBF esteja em CP-850 ou CP-437. Só experimentando para ver.

thingol, vc acertou a solução:

Nome (acentuado, maiúsculas e minúsculas) do Município (padrão DOS, página de código 850).

Troquei para:
protected String characterSetName = “CP850”;

e funcionou

Valeu!

Renata

Agradeça ao Luca - ele levantou a bola, e eu nem chutei, só desviei com o pé :stuck_out_tongue:

Olá

Eu ia dizer logo para tentar o CP-850. Ainda bem que não fiz porque sabia que tinha um outro bem comum mas não lembrava que era o CP-437. Acho que eu usava este no DOS mas não tenho certeza.

[]s
Luca (trabalhando com Fortran em um sistema de 1996, usando uma IDE de 1999 e respondendo pergunta de DOS :cry: )

O problema do CP-437 é que não implementa todos os acentos da língua portuguesa. Quando você tem um arquivo desses, vê algumas aberrações como:

ação -&gt açäo ou açåo (o a+til não existe, portanto foi usado o ä = "a + umlaut", que não existe em português mas engana um pouco, ou pior, o å = "a + ring above")