在具有正确字符集的 http 响应中给出“<?>”的法语口音 (Java)

french accents giving "<?>" in http responses with correct charset (Java)

调用 API returns 法语句子,所有重音字符在我的 java 代码中显示为 <?>,即使字符集定义明确( application/json;字符集=iso-8859-1).

使用邮递员或我的网络浏览器,我没有遇到任何问题。 我还尝试使用值为 application/json;charset=UTF-8application/json;charset=iso-8859-1Content-Type header 调用 API,但问题仍然存在。 有什么想法吗?

response.getBody() 给出:

{"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))给出的完全一样。

我正在使用抄写员java。

编辑:即使将响应保存在文件中并使用 NotePad++ 打开,结果也类似:

您需要将其阅读为 ISO-8859-1。不知道那是什么,因为我不知道你在做什么。我的 https://technojeeves.com/index.php/aliasjava1/51-transcode-in-java 很有帮助。使用 wget: wget -O - us-central1-dz-dialect-api.cl… | xcode -ie Latin1(我制作了 'xcode' 来调用那个 Java 应用程序)

使用以下代码解决了问题:

      httpResponse.setContentType("application/json;charset=UTF-8");
      mapper.getFactory().configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true);