gpt4 book ai didi

java - Apache httpclient HTTPGET 解码

转载 作者:太空宇宙 更新时间:2023-11-04 10:07:53 24 4
gpt4 key购买 nike

我正在使用一个以 UTF-8 编码德语变音符号的 API。我的应用程序需要对这些字符进行解码和编码。编码不是问题,工作得很好。为了实现这一目标,我在创建新的 StringEntity 并将其添加到请求时设置了一个字符集,如下所示:

    HttpPost request = new HttpPost(getUrl);
if(useProxy) {
RequestConfig config = RequestConfig.custom()
.setProxy(proxy)
.build();
request.setConfig(config);
}
request.addHeader("APIKey", apiKey);
request.addHeader("Accept", "application/json");
request.addHeader("Content-type", "application/json; charset=UTF-8");
request.setEntity(new
StringEntity(JsonUtils.getJsonFromObject(nachricht), "UTF-8"));

所有特殊字符(如变音符号)都会在后端正确发送和存储。但是,当我想检索这些数据时,它会导致一些错误,如下所示: enter image description here

小字符有效,但大写字母无效。响应或 HTTPGET 请求似乎是 ISO_8859_1 编码的。如何将 HTTPGET 的字符集设置为 UTF-8?我已经尝试像这样设置请求 header :

request.addHeader("Content-type", "application/json; charset=UTF-8");

并像这样解码响应的内容:

byte[] bytes = EntityUtils.toString(responseEntity).getBytes();
String responseString = new String(bytes, "UTF-8");

但是由于响应的字符集似乎是错误的,因此使用 UTF-8 解码会导致错误..

最佳答案

我遇到了同样的问题,并通过将参数“UTF-8”传递给responseEntity来修复它:

String responseString = EntityUtils.toString(responseEntity, "UTF-8");

关于java - Apache httpclient HTTPGET 解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52723059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com