Olá pessoal, a questão é a seguinte:
Tenho uma estrutura cliente-servidor que se comunicam através de sockets, o problema tá acontecendo quando na mensagem apresentam alguns caracteres especiais.
Exemplo:
(Lado cliente)
s = new Socket(endereco, porta);
in = new DataInputStream(s.getInputStream());
out = new DataOutputStream(s.getOutputStream());
//Enviando o tamanho do que vou mandar
out.writeInt(parametros.length());
//O que eu quero mandar
out.write("Algum texto antes... +=_;ˆ*()[]");
(Lado Servidor)
DataInputStream in =
new DataInputStream(connection.getInputStream());
int tamanho = in.readInt();
DataInputStream inFromClient =
new DataInputStream(connection.getInputStream());
byte[] bytes = new byte[tamanho];
inFromClient = new DataInputStream(connection.getInputStream());
inFromClient.readFully(bytes);
String mensagem = new String(bytes, "UTF-8");
System.out.println(mensagem);
//Saída: +=_;�*()[]
Essa é a questão, quando há alguns caracteres especiais, a conversão me retorna coisas do tipo onde tem exemplificado acima. Alguém tem alguma ideia do que pode causar isso ?