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