我已经为这个端点编写了一个REST客户机:
textmap.com/ethnicity_api/api
但是,在POST参数中传递一个名称字符串(如jennífer garcía
)并将编码设置为UTF-8时,我得到的响应不是相同的字符串。如何在响应对象中获得相同的名称?下面是如何设置请求和响应thatI get:
httpClient = HttpClients.createDefault();
httpPost = new HttpPost(baseurl);
StringEntity input = new StringEntity(inputJSON, StandardCharsets.UTF_8);
input.setContentType("application/json");
//input.setContentType("application/json; charset=UTF-8");
httpPost.setEntity(input);
response = httpClient.execute(httpPost);
if (response.getStatusLine().getStatusCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
output = org.apache.commons.io.IOUtils.toString(br);
System.out.println(output);
输出中名称的值为:jenn�fer garc�a
这是一个与我在请求中发送的完全不同的字符集。我怎样才能得到我在请求中发送的相同的字符集?
其次,我希望在Java-6和Java-7中都能使用相同的代码。以上代码仅使用Java-7 .如何使这两个版本的代码都能工作呢?
https://stackoverflow.com/questions/35815152
复制相似问题