Como corrigir

Galera, é o seguinte:

Fiz um código para ler arquivos .txt. Até ai beleza, só que quando ele me retorna o conteúdo, as palavras que contém acento ou ç não aparecem (na verdade aparece um losango preto com interrogação dentro). Alguém ai sabe o porque e como corrigir?

Segue o código de leitura:

	    
...
	    FileInputStream stream = new FileInputStream("C:/Users/David/Desktop/testando/Educacao_a_distancia".txt");
            InputStreamReader streamReader = new InputStreamReader(stream);
            BufferedReader reader = new BufferedReader(streamReader);
            String linha = null;
            while ((linha = reader.readLine()) != null) {
                    System.out.println(linha);
                }
            }
            stream.close();
            streamReader.close();
            reader.close();
        }

… obs.: modifiquei o código acima para facilitar para vocês. O meu código mesmo está dentro de um loop e dentro do while ((linha = reader.readLine()) != null) tem uma condição. Esse ai serve…

Tchê,

Tenta pegar na formatação “UTF-8”

System.out.println(linha.getBytes("UTF-8"));

Mais explicações sobre codificação pode ser acessada no site
http://blog.caelum.com.br/entendendo-unicode-e-os-character-encodings/

bah eu tbm encarei esse problema, mas com um XML…

… de cara pensei ser alguma coisa referente ao tipo do encoding que ele lê, mas não consegui tempo ainda pra testar isso…

no meu caso essa situação que vc comentou acontece apenas para caracteres acentuados ou Ç em caixa alta…
acredito que deva ter alguma relação…

to nesse barco ai também… hehehe

até mais!

opa ulissesnairne!
no meu caso eu sei que tá em UTF-8

e acontece essa questão…

[quote=tucano]opa ulissesnairne!
no meu caso eu sei que tá em UTF-8

e acontece essa questão…
[/quote]

Opa,

Tente trazer na codificação “ISO-8859-1” se não resolve.

bah continuou a mesma,

eu já suspeitava dessa questão, depois que vi aquele link que postaste deu uma clareada na questão…

vou dar uma capinada no código
(pra ajudar não é um código pequeno e nem de minha autoria…)
nada impede de eu encontrar um monstrinho encomodando nessa parte

foi boa tua explanação!

valeu aew ulissesnairne!
até mais!

ulissesnairne, consegui resolver o problema do arquivo .txt, salvei ele no formato ansi e deu certo, eu não tinha percebido que eles estavam em unicode. Mas, valeu pela dica

… Porém surgiu outro problema. Tenho um código que pega valores de uma planilha do excel, só que as palavras com acento e ç aparece aquele losango preto com uma interrogação dentro. Tentei salvar de várias formas e não deu certo. Se você souber como corrigir eu agradeço.

Segue o código:

[code]
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class Main {

public static void main(String[] args) throws IOException, BiffException, ClassNotFoundException {


    Workbook workbook = Workbook.getWorkbook(new File("C:/Users/Administrador/Desktop/negocios.xls"));

    /* pega a primeira planilha dentro do arquivo XLS */
    Sheet sheet = workbook.getSheet(0);

    //Pega a quantidade de linhas da planilha
    int linhas = sheet.getRows();

    for (int i = 1; i <linhas; i++) {
        /* pega os valores das células como se numa matriz */
        Cell e1 = sheet.getCell(4, i);
        Cell f1 = sheet.getCell(5, i);

        /* pega os conteúdos das células */
        String col6 = e1.getContents();
        String col7 = f1.getContents();

        System.out.println(col6+"\n"+col7);

        }
        workbook.close();
 }

}
[/code]>

Sei que o post é antigo, mas eu tive esse mesmo problema essa semana.
Segue a solução:

WorkbookSettings ws = new WorkbookSettings();
ws.setEncoding("Cp1252");

Favor marcar como resolvido

1 curtida