我有一個實用程序用於集成數據,並且在使用特殊字符(如「Ã」)時遇到問題。下面是問題出現的問題的方法。響應來自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