Problema com Encode em JTextArea com String vindo do sistema operacional

2 respostas
Tacioandrade

Pessoal, estou com um pequeno problema e espero que alguém aqui possa me ajudar.

Estou criando um Compilador para a disciplina de mesmo nome. Este compilador é escrito em C e eu já tinha criado uma interface gráfica em Java para ele (pois semestre passado foi a em Java a disciplina) e agora fiz a integração do compilador (em C) com o Editor (em Java).

Para a integração eu utilizo o seguinte código:

String parametros[] = {caminhoCompilador, "-m", caminhoDoArquivo};
                processo = Runtime.getRuntime().exec(parametros);
                InputStream in = processo.getInputStream();
                int c;
                String saida = "";
                // Retorna a saida do getRuntime() para a interface grafica
                while ((c = in.read()) != -1) {
                    saida += ((char) c);
                }
                jTextLog.setText(saida+"\n\n\n");
                in.close();

Porem estou tendo um problema de encode do texto que vem do sistema, no meu caso ocorre dos caracteres que tem acentos ficam desconfigurados. Gostaria de saber se teria para fazer com que o texto do JTextArea fosse encodado em UTF-8 ou então converter essa String “saida” para o encode usado pelo JTextArea (que acho que penso ser ISO 8859-1.

Att. Tácio Andrade.

2 Respostas

eliangela

Olá!

Eu já tive um problema parecido e resolvi alterando as configurações do projeto no Netbeans.
Vá até as propriedades do projeto => na primeira categoria => em baixo tem a codificação. Você pode alterar lá pra UTF-8 ou ISO 8859-1.

O Windows usa por padrão o ISO 8859-1.

Vê lá se resolve.
Espero ter ajudado

Tacioandrade

eliangela, no meu caso não funcionou. Eu estou no Linux (e a aplicação terá que funcionar prioritariamente neste ambiente). Na minha distro, o encode padrão é UTF-8 assim como os do meu código fonte, porem os caracteres aparecem da seguinte forma:

Estou pensando que a aplicação esteja tratando a string saida do getRuntime() como ASC II ou algo do gênero, já que tanto o código como o SO estão no mesmo encode.

Att. Tácio Andrade.

Criado 31 de outubro de 2011
Ultima resposta 1 de nov. de 2011
Respostas 2
Participantes 2