So I think the image below shows my problem pretty well:
I would be expecting the original string to be printed as-is, since when I send it in a response (using JAX-RS) it actually shows the \u2018, not the left quote it should. However, applying the method EncodingUtils.clean(...) (which is just a wrapper of Apache Commons Lang StringEscapeUtils.unescapeJava(...)) to the string sent to the response doesn't change the response (it still shows \u2018). Since as of the test they have changed, what am I missing here and what do I need to do to get the intended replacements?
EDIT1: the client is an Android app and the troublesome string is one of the attributes of the aforementioned JSON response. If I don't touch it, the phone shows this weird character '€TM'. If I decode it using Windows-1252 it prints the char right, but it screws the other parts of the String.
EDIT2: I have @Produces(text/json). These are the headers reported (note that I'm using OkHttp for request handling):
Date: Tue, 23 Dec 2014 21:05:49 GMT
Connection: close
Server: Jetty(7.5.3.v20111011)
Via: 1.1 vegur
OkHttp-Selected-Protocol: http/1.1
OkHttp-Sent-Millis: 1419368765324
OkHttp-Received-Millis: 1419368765736
Furthermore, printing to console from Android the received string actually prints it right. I have no clue on what's going on.