Erro Encoding/Charset ao ler/gravar arquivo XML em Linux

2 respostas
andre_guitar7

Gente precisei fazer um processo para ler, alterar e gravar um arquivo XML. Só que quando gravo no Linux as letras com acentos ficam todos com caracteres esquisitos. Isso não acontece no Windows.

Já alterei o código de várias formas e não consegui sucesso.

Para ler o arquivo

FileInputStream reader = null;
reader = new FileInputStream(new File(<caminho_do_arquivo>));

// Já alterei essa linha adicionando new InputStreamReader(reader, Charset.forName("UTF-8"), entre outros charsets
BufferedReader leitor =  new BufferedReader(new InputStreamReader(reader));

String linha = null;

while ((linha = leitor.readLine()) != null)
{
	conteudo += linha;
}

reader.close();
leitor.close();

Para gravar

String conteudo = obterConteudoArquivoXml();
conteudo = conteudo.substring(0, conteudo.length() - 7);
FileOutputStream fos = new FileOutputStream(obterCaminhoENomeDoArquivoXml());
OutputStream bout = new BufferedOutputStream(fos);

//aqui também  alterei de várias formas com vários tipos de charsets
OutputStreamWriter out  = new OutputStreamWriter(bout, Charset.forName("UTF-8"));

out.write(conteudo + conteudoParaGravar + "</root>"); 
out.flush();
out.close();
fos.close();

Isso só acontece quando gravo no Linux, no Windows funciona normal, sem precisar setar charsets. Alguém tem alguma dica?

2 Respostas

andre_guitar7

eaí, pessoal… alguma dica?

andre_guitar7

Gente, ainda não consegui achar uma solução.

Alguma dia? Isso só acontece no Linux. No Windows vai.

Criado 1 de setembro de 2010
Ultima resposta 21 de set. de 2010
Respostas 2
Participantes 1