我有一个实用程序用于集成数据,并且在使用特殊字符(如“Ô)时遇到问题。下面是问题出现的问题的方法。响应来自API并且采用xml格式。HTTPGet unicode字符出现在响应中字符串
protected String getStringHttpContent(URI url, Map<String,String> headerParameters) throws IOException
{
HttpGet request = new HttpGet(url);
for(String parameter : headerParameters.keySet())
request.setHeader(parameter, headerParameters.get(parameter));
CloseableHttpResponse response = getClient().execute(request);
dumpHeaders(response);
BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
StringBuffer sb = new StringBuffer();
String output;
while ((output = br.readLine()) != null) {
sb.append(output);
}
response.close();
return sb.toString();
}
在响应字符串中的njÃientill的结果是njämientill。我试过改变编码,但结果保持不变。任何意见,将不胜感激。
你是否检查过什么字符编码 - 如果有的话 - 远程方通过响应头指示? – CBroe
是的,编码以gzip形式出现。我试图通过为gzip添加适当的头来解决这个问题,但结果保持不变。 – Filiper