Issue
Calling an API that returns french sentences, all the accented characters are displayed like <?>
in my java code, even if the charset is well defined (application/json;charset=iso-8859-1).
Using postman or my web browser, I don't face any problem.
I also tried to call the API with a Content-Type
header with the value application/json;charset=UTF-8
or application/json;charset=iso-8859-1
but the problem remains the same.
Any idea ?
response.getBody()
gives:
{"sentences":[{"fr_value":"il �tait loin","dz_value":"kaan b3id","additional_information":{"personal_prounoun":"HE","verb":"�tre","adjective":"loin","tense":"pass�"}}],"count":1}
new String(response.getBody().getBytes(StandardCharsets.UTF_8))
gives exactly the same.
I'm using scribejava.
Edit: even saving the response in a file and opening it with NotePad++, the result is similar:
Solution
Problem solved using the following code :
httpResponse.setContentType("application/json;charset=UTF-8");
mapper.getFactory().configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true);
Answered By - Redouane B.
Answer Checked By - Cary Denson (JavaFixing Admin)