首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有特殊字符的HttpResponse

具有特殊字符的HttpResponse
EN

Stack Overflow用户
提问于 2016-03-05 14:13:01
回答 1查看 3.6K关注 0票数 0

我已经为这个端点编写了一个REST客户机:

代码语言:javascript
运行
复制
textmap.com/ethnicity_api/api

但是,在POST参数中传递一个名称字符串(如jennífer garcía )并将编码设置为UTF-8时,我得到的响应不是相同的字符串。如何在响应对象中获得相同的名称?下面是如何设置请求和响应thatI get:

代码语言:javascript
运行
复制
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 .如何使这两个版本的代码都能工作呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-09 17:12:30

我认为BufferedReader破坏UTF8编码,所以这实际上与HTTP无关。顺便提一句,br可能会根本不需要

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35815152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档