在具有正确字符集的 http 响应中给出“<?>”的法语口音 (Java)
french accents giving "<?>" in http responses with correct charset (Java)
调用 API returns 法语句子,所有重音字符在我的 java 代码中显示为 <?>
,即使字符集定义明确( application/json;字符集=iso-8859-1).
使用邮递员或我的网络浏览器,我没有遇到任何问题。
我还尝试使用值为 application/json;charset=UTF-8
或 application/json;charset=iso-8859-1
的 Content-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);
调用 API returns 法语句子,所有重音字符在我的 java 代码中显示为 <?>
,即使字符集定义明确( application/json;字符集=iso-8859-1).
使用邮递员或我的网络浏览器,我没有遇到任何问题。
我还尝试使用值为 application/json;charset=UTF-8
或 application/json;charset=iso-8859-1
的 Content-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);