gpt4 book ai didi

java - 带有特殊字符的 HttpResponse

转载 作者:行者123 更新时间:2023-12-01 10:17:21 40 4
gpt4 key购买 nike

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

textmap.com/ethnicity_api/api

但是,当在 POST 参数中向其传递诸如 jennífer garcía 之类的名称字符串并将编码设置为 UTF-8 时,我得到的响应不是相同的字符串。如何在响应对象中获得相同的名称?以下是我设置请求和得到的响应的方法:

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。如何使代码适用于这两个版本?

最佳答案

我认为 BufferedReaderbreaking the UTF8 encoding ,所以这实际上与 HTTP 无关。顺便说一句,br 可能 not be needed at all .

关于java - 带有特殊字符的 HttpResponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35815152/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com