1

我正在使用 org.apache.http 库执行发布请求,并且无法以正确的方式对某些字符进行编码。我正在使用 jsoup 从网页中提取文本,然后将此文本发送到 api。我的代码看起来像这样

        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost postRequest = new HttpPost(url);

        ObjectMapper mapper = new ObjectMapper();
        String jsonString = mapper.writeValueAsString(object);

        StringEntity input = new StringEntity(jsonString);

        input.setContentType("application/json");
        postRequest.setEntity(input);
        HttpResponse response = httpClient.execute(postRequest);

问题是,有时我从这些网页中获取的文本格式不正确,并且在初始化严格性类时,撇号和连字符等正常字符会变成问号或其他奇怪的标点符号。我的问题是如何获取编码不正确的 jsonString 并对其进行正确编码,以便在发布请求中发送时,将字符设置为正确的字符。我不想删除撇号或连字符,我想将它们设置为正确的格式,如 utf-8。

4

1 回答 1

0

在 StringEntity 的构造函数上设置字符集为我解决了这个问题(在创建后在 StringEntity 上设置内容类型没有!):

import org.apache.http.protocol.HTTP;
...
httpPost.setEntity(new StringEntity(jsonString, HTTP.UTF_8));
于 2015-02-23T11:52:00.760 回答