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.