Resolvendo problemas de codifica��o de caracteres.

Dica enviada pelo Constantino Jos� Rocha Cronemberger

Geralmente quando vamos executar um programa Java, na linha de comando do
Windows, que usa os m�todos System.out.println ou System.err.println, temos
problemas com a acentua��o, como por exemplo:

A sa�da para o comando

System.out.println("n�o foi poss�vel mostrar esta mensagem corretamente");

na linha de comando do Windows sai como:

n�o foi poss�vel mostrar esta mensagem corretamente

Este problema ocorre porque o conjunto de caracteres usado pela linha de
comando do Windows � o Cp850(no caso da vers�o em portugu�s do sistema) e
n�o o Cp1252 que � o padr�o para todos os outros aplicativos do Windows,
incluindo o Java.
Para resolver esse problema basta substituir os atributos System.out e
System.err que s�o do tipo PrintStream por inst�ncias que estejam
configuradas para codificar os caracteres no padr�o Cp850, como por exemplo:

    // cria um novo PrintStream
    PrintStream ps =
      new PrintStream(new
FileOutputStream(FileDescriptor.out),true,"cp850");
   
    // atualiza o atributo System.out
    System.setOut(ps);
   
    System.out.println("n�o foi poss�vel mostrar esta mensagem
corretamente");

Nesse caso a sa�da na linha de comando � correta, s� que se esta sa�da for
redirecionada para um arquivo, teremos ent�o problemas no caso de abrir o
arquivo com o Notepad por exemplo, onde teremos:

n�o foi poss�vel mostrar esta mensagem corretamente

Moral da hist�ria, n�o d� para fixar uma codifica��o padr�o a ser usada no
Windows e o melhor caminho talvez seja criar uma mecanismo para que o
usu�rio possa configurar isso manualmente.

Constantino Jos� Rocha Cronemberger
Engenheiro de Computa��o pela Unicamp
[EMAIL PROTECTED]

______________________________________________________________________________________________
Handerson Ferreira Gomes
Summa Technologies
Boletim Dicas Java - Sua dose di�ria de Java.




================================================================
Dicas-Java circula diariamente com pequenas dicas
sobre a plataforma Java e � mantido pela Sociedade de
Usu�rios Java - SOUJAVA (http://www.soujava.org.br)
- Quer contribuir com uma dica sobre Java? Envie um
e-mail para [EMAIL PROTECTED]
- Participe de outras listas de discuss�o sobre a linguagem Java.
Saiba mais em http://www.soujava.org.br/lista.htm
------------------------------------------------------------------
- Para assinar este boletim envie um e-mail para [EMAIL PROTECTED]
- Para cancelar sua assinatura envie um e-mail para 
[EMAIL PROTECTED]
- O hist�rico das Dicas-List pode ser encontrado em 
http://www.mail-archive.com/dicas-list%40soujava.org.br




Responder a