Solucionado (ver solução)
Solucionado
(ver solução)
11
respostas

Caracteres especiais impressos corretamente com o System.out.println()

Estou no curso Java II e não vi nas aulas até o momento uma maneira de imprimir caracteres especiais (acentos, "ç", etc) corretamente com o comando System.out.println(). Por favor, alguém saberia como fazer isso no Java?

11 respostas

Oi, Rafael.

Não entendi sua pergunta. O System.out.println imrpime qualquer caractere, até os especiais. O que acontece quando você tenta imprimir eles? Como você está fazendo?

No meu caso estou usando o CMDer como prompt para execução dos programas. Quando executa um comando System.out.println() com um texto com acentos ou caracteres especiais, no lugar das letras com acentos ou dos caracteres especiais aparecem símbolos estranhos.

Exemplo:

A execução da instrução:

System.out.println("O saldo total atualizado é de: " + this.getSaldo());

Produz o seguinte no CMDer:

O saldo total atualizado é de: 3059.897

O "é" não aparece da forma como deveria.

O problema deve ser com o CMDer. Poderia tentar rodar compilar e rodar direto no CMD e checar se o mesmo ocorre?

Testei com o prompt do Windows padrão e deu o mesmo resultado:

O saldo total atualizado é de: 3059.897

Ah...isso é por causa do encoding. Seu arquivo está com um enconding difernte do que o CMDer usa. Você pode estar com o seu arquivo .java escrito no encoding UTF-8 e o CMDer está configurado com outro encoding (o padrão do windows é ISO alguma coisa).

Então, ou você muda o encoding do CMDer (https://github.com/cmderdev/cmder/issues/409) ou você muda o encoding do seu arquivo .java.

Entrei nas configurações do CMDer e no campo "Font Charset" não há a opção de UTF-8. A que existe lá é a "ANSI".

Neste caso, por favor, como faço para alterar o encoding nos arquivos .java?

Rafael,

Qual é o editor ou IDE que você está usando para escrever seu código Java? Isso muda de um para outro.

No meu caso, como ainda estou no meio do curso de Java II, só usei o Notepad++ para editar os códigos. Devo começar a usar o Eclipse para editar os códigos daqui há algumas aulas.

solução!

No notepad++ para você alterar o encoding é o seguinte caminho:

Settings -> Preferences -> tab New document/Default Directory -> Encoding

Fiz a modificação no Notepad++. Estava em UTF-8 e passei para ANSI para ficar igual ao CMDer. Funcionou direitinho agora. A acentuação apareceu corretamente. Muito obrigado pela ajuda.

No cmd ou cmdr

chcp 65001

essa instrução deixa a sessão do shell em UTF-8

chcp 1252

essa deixa em Win1252 (padrão do cmd do windows)