jersey web service json utf-8 encoding

Jersey should always produce utf-8 by default, sounds like the problem is that your client isn't interpreting it correctly (the xml declaration doesn't "make" it utf-8, just tells the client how to parse it).

What client are you seeing these problems with?

Valid JSON is only supposed to be Unicode (utf-8/16/32); parsers should be able to detect the encoding automatically (of course, some don't), so there is no encoding declaration in JSON.

You can add it to the Content-Type like so:

@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")

if @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8") does not function, then try:

@Produces("application/json;charset=utf-8")

in theory it is the same, but the first option did not work to me


If adding the charset to each and every resource is not an option, maybe the answer to this question, which shows how to enforce a default charset, might be helpful.