我正在使用一个API,该API以UTF-8编码德语变音符号。我的应用程序需要对这些字符进行解码和编码。编码不是问题,完全可以。为此,我在创建新的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"));
[所有特殊字符(如变音符)均已正确发送并存储在后端。但是,当我想检索这些数据时,会导致出现一些如下所示的错误:
小字符有效,但大写字母无效。响应或HTTPGET请求似乎是ISO_8859_1编码的。如何将HTTPGET的字符集设置为UTF-8?我已经尝试过像这样设置requestheader:
request.addHeader("Content-type", "application/json; charset=UTF-8");
并像这样解码响应的内容:
byte[] bytes = EntityUtils.toString(responseEntity).getBytes();
String responseString = new String(bytes, "UTF-8");
但是由于响应的字符集似乎是错误的,因此使用UTF-8解码会导致错误。
我正在使用一个API,该API以UTF-8编码德语变音符号。我的应用程序需要对这些字符进行解码和编码。编码不是问题,完全可以。为此,我设置了一个字符集...
我遇到了同样的问题,并通过将参数“ UTF-8”传递给responseEntity来解决它: