具有StringEntity的HttpPost具有特殊字符,如®,看到¿½`而不是®

jav*_*hie 11 java character-encoding apache-httpclient-4.x

我需要使用特殊字符,stringentity如下所示.

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpEntity entity = new StringEntity("test®");
httpPost.setEntity(entity);
httpPost.setHeader("Accept-Encoding", "UTF-8");

HttpResponse response = httpClient.execute(httpPost);
BufferedReader reader =  new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
while ((reader.readLine()) != null) {
    System.out.println (reader.readLine());
}
reader.close();
Run Code Online (Sandbox Code Playgroud)

输出包含test�而不是test®在响应中.

Ita*_*tto 24

改成:

    HttpEntity entity = new StringEntity("test®", "UTF-8"); 
Run Code Online (Sandbox Code Playgroud)