Decodificando uma string para o formato "ISO-8859-1"

1 resposta
satangoss

Olá pessoal tenho uma rotina de importação de arquivo e preciso transformar qualquer formato para o formato “ISO-8859-1”, a principio estou fazendo o processo linha a linha com BufferedReader mas quem souber fazer o processo com o arquivo inteiro também ajuda.
meu código:

FileReader fr = new FileReader(arquivo.getFile());
            String encode = fr.getEncoding(); //pega o encode do filereader
            BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(arquivo.getFile()), encode)); ///cria o buffer do reader

            int numeroLinhas = 1;

            String linha = null;

            while (reader.ready()) {

                linha = reader.readLine();


                byte[] dataIn = linha.getBytes(); //byte array of data could be from file, socket, whatever, data is ISO-8859-1 charset String
                String a = new String(dataIn,"ISO-8859-1");// note use of constructor with charset to use for decoding bytes
                byte[] dataOut = a.getBytes(encode);//dataOut is a byte array holding the value of a encoded into bytes using the s


                String linha = new String(dataOut, "ISO-8859-1");
                System.out.println("LINHA: " + linha );

//// pra baixo continua o código mas é irrelevante para o problema

Já tentei trocar os encode e nada, as vezes aparece um ponto de interrogação e as vezes caracteres tipo Servi�os

Desde já agradeço a ajuda.

1 Resposta

balrog

Fundamentalmente seu problema eh outro, vc nao pode simplesmente tentar converter ‘qualquer’ charset para seu formato ISO-8859-1. Caracteres do seu charset source que nao existem no ISO-8859-1 simplesmente serao substituidos por lixo.

Criado 11 de agosto de 2010
Ultima resposta 11 de ago. de 2010
Respostas 1
Participantes 2