Charset do System.in

0 respostas
S

Olá a todos.

Estou com um pequeno, porém chato problema. Estou criando uma aplicação que envia mensagens pela rede. Estou utilizando socket e a serialização de objetos.

Porém, não sei por que cargas d’agua, quando digito algum texto com acento, lendo System.in, o charset sai errado. Já tentei todo tipo de conversão e o charset default é UTF-8.

Alguém?

Segue abaixo o código:

public class testeClientVP {

    public static void main(String[] args) throws UnknownHostException, IOException{
            System.out.println("Criando a conexão com o servidor.");
            Socket conn = new Socket("10.16.15.32",6556);

            ObjectOutputStream oos = new ObjectOutputStream(conn.getOutputStream());
            System.out.println("Digite uma mensagem: ");
            
            Scanner s = new Scanner(System.in);
            String msg = new String(s.nextLine().getBytes(),"UTF-8");
            System.out.println("Você digitou: "+msg);
            oos.writeObject(msg);
            oos.flush();
            oos.close();
    }


}

Quando imprimo a string MSG, na linha 12, eu recebo algo como:
[…]Um de nossos t�cnicos esteve em campo[…]
(Trazendo para o IE virou isso: � mas no NetBeans é um quadrado)

Obrigado.

Criado 6 de janeiro de 2011
Respostas 0
Participantes 1