Oi Pessoal,
Estou desenvolvendo um web service que devolve um JSON.
Percebi que quando rodo a aplicação, os caracteres com acentuação ficam distorcidos.
Já fiz várias pesquisas e encontrei um meio de converter os caracteres para UTF-8.
Para teste, desenvolvi 2 métodos que devolvem as mesmas strings. 1a devolve sem converter nada e o 2a converte para UTF-8.
este é o código de exemplo:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
@Path("/getUsuario")
public class UsuarioResource {
@Path("/getString")
@GET
@Produces("application/json")
public String getString() {
//retorna apenas uma string sem converter nada
return "ATENÇÃO JOÃO DA SILVA E JOSÉ";
}
@Path("/getStringutf8")
@GET
@Produces("application/json")
public String getStringUtf8() {
String n = new String("ATENÇÃO JOÃO DA SILVA E JOSÉ");
String x = new String("");
try {
//aqui estou garantindo a formatação UTF-8
x = new String(n.getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return x;
}
}
O resultado da chamada é o mesmo, ou seja, caracteres distorcidos.
O web service pode ser acessado através dos links:
http://dmtest.jelastic.servint.net/getUsuario/getString
http://dmtest.jelastic.servint.net/getUsuario/getStringutf8
Observem que o retorno com problema é o mesmo para as duas chamadas.
“ATENÃ?Ã?O JOÃ?O DA SILVA E JOSÃ?”
Alguém tem alguma idéia de como corrigir isso?