`

HttpClient 处理中文乱码

阅读更多

 

HttpClient 请求的中文乱码问题 
相关类库: 
commons-codec-1.3.jar,commons-httpclient-3.1.jar,commons-logging-1.1.1.jar 

--给请求传递参数

HttpClient client = new HttpClient();

HttpMethod method= new PostMethod(url);

HttpMethodParams params = new HttpMethodParams();

params.setContentCharset("GB2312");

method.setParams(params);

 

方式一:
最简单的方式直接输出页面,这里基本上不需要任何设置。

System.out.println(getMethod.getResponseBodyAsString());

 

方式二:
使用流方式读取

InputStream in = getMethod.getResponseBodyAsStream();

//这里的编码规则要与上面的相对应

BufferedReader br = new BufferedReader(new InputStreamReader(in,"GB2312"));

String tempbf;

StringBuffer html = new StringBuffer(100);

while ((tempbf = br.readLine()) != null) {

    html.append(tempbf +"\n");

}

System.out.println(html.toString());

 

方式三:
当然还可以使用这样的方式,因为默认是使用ISO-8859-1,无非就是多进行了几次转码 

InputStream in = getMethod.getResponseBodyAsStream();

//这里使用8859-1读取

BufferedReader br = new BufferedReader(new InputStreamReader(in,"ISO-8859-1"));

String tempbf;

StringBuffer html = new StringBuffer(100);

while ((tempbf = br.readLine()) != null) {

    html.append(tempbf +"\n");

}

//8859-1再次转成GB2312

System.out.println(new String(html.toString().getBytes("ISO-8859-1"),"GB2312"));


我还是建议使用第一种方法,但我认为本质上是一致的 
对于请求部分还可以通过如下几种方式进行设置 

getMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"GB2312");

getMethod.addRequestHeader("Content-Type", "text/html; charset=gb2312");

分享到:
评论
1 楼 宋建勇 2014-04-22  

相关推荐

    彻底解决httpClient乱码问题

    在处理中文字符时,由于编码不一致或者处理不当,往往会出现乱码现象。以下是一些关键的知识点和解决方案: 1. **字符编码设置**:HttpClient默认可能不会自动处理服务器返回的字符集,因此需要明确指定编码。在...

    HttpClient、乱码解决:实例

    以下是一个简单的使用HttpClient发送GET请求并处理乱码的示例: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(url); httpGet.setHeader("Accept-Charset...

    解决HttpClient中文乱码问题jar文件

    在Java开发中,HttpClient是一个广泛使用的HTTP客户端库...了解并应用以上知识点,可以帮助你有效地解决HttpClient在处理中文内容时的乱码问题。在实际项目中,确保每个环节都正确设置字符编码,是避免此类问题的关键。

    解决了中文乱码的http的get和post请求demo

    在处理中文乱码时,可以通过设置请求头`charset`属性来指定编码,例如: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://example.com"); ...

    HttpClient 4文件上传

    这里指定了兼容浏览器的模式,并且设置了字符集为UTF-8,从而避免了中文乱码的情况发生。 #### 五、总结 通过上述代码示例,我们可以看到使用Apache HttpClient 4.x版本进行文件上传的过程。关键在于正确构建`...

    android客户端向服务器提交请求的中文乱码问题

    在Android客户端向服务器提交请求时,遇到中文乱码问题是一个常见的困扰。这通常是由于编码格式不一致或处理不当导致的。以下将详细解释这个问题的原因、影响以及如何解决。 首先,我们要明白字符编码的基本原理。...

    一个使用HttpClient调用天气预报接口的例程

    在Android中,如果服务器返回的数据不是UTF-8编码,而使用了GBK,那么在处理文本时需要进行正确的字符编码转换,以防止乱码问题。 5. **源码解析**: - `HttpGet`对象:创建一个HttpGet实例,设置其请求URL,用于...

    以httpclient方式提交数据

    Apache HttpClient是一个开源项目,它提供了一个灵活且功能丰富的API,用于执行HTTP请求和处理响应。HttpClient库不仅支持基本的HTTP方法如GET和POST,还支持更复杂的HTTP特性,如Cookie管理、重定向处理、认证等。...

    java中文乱码解决之道(8)解决URL中文乱码问题Jav

    在Java编程中,中文乱码问题是一个常见的挑战,特别是在处理URL时。URL编码是导致中文乱码的关键因素,因为URL不支持非ASCII字符。本文将深入探讨如何在Java中有效地解决URL中文乱码问题。 首先,我们需要理解URL...

    httpclient连接第三方接口的实际项目案例

    在处理中文字符时,可能会出现乱码问题。我们可以通过设置字符编码来解决: ```java httpGet.setHeader("Accept-Charset", "UTF-8"); httpGet.setHeader("Content-Type", "application/x-www-form-urlencoded;...

    HttpClient应用实例2

    本实例主要关注如何解决在使用HttpClient进行文件上传时可能出现的乱码问题。 在HttpClient中,乱码问题通常出现在两个方面:请求参数的编码和响应内容的解码。请求参数的编码涉及到URL编码,特别是包含非ASCII字符...

    页面get请求 中文参数方法乱码问题的快速解决方法

    然而,当GET请求的参数包含中文字符时,由于编码格式不一致或者处理不当,可能会出现中文乱码的问题。本篇文章将详细介绍如何快速解决这一问题。 首先,我们需要理解乱码产生的原因。在HTTP请求中,URL(统一资源...

    HttpClient以及获取页面内容应用

    2.3.1获取内容中文乱码 /** * 通过url获取网页内容, * 解决中文乱码问题 * @param httpUrl * @return */ public static String downloadPage(String httpUrl) { StringBuffer pageBuffer = new ...

    httpClient学习.doc

    这可能会导致中文乱码的问题。为了避免此类问题,可以指定字符编码: ```java String charset = "UTF-8"; // 或者 "GBK", "ISO-8859-1" 等 String responseString = new String(getMethod.getResponseBody(), ...

    mysql.rar_JSP+Mysql_中文乱码

    在开发Web应用时,我们经常会遇到中文乱码问题,特别是在JSP与MySQL的结合使用中。这个"mysql.rar_JSP+Mysql_中文乱码"压缩包提供的资源旨在帮助开发者解决此类问题。以下是对这个问题的详细解释和解决方案。 首先...

    使用httpClient组件解析html并解决字符编码

    HttpClient提供了一个简单的API,允许开发者轻松地发送HTTP请求和处理响应。 HttpClient解析HTML 在解析HTML时,需要首先设置HttpClient的字符集参数,以便正确地解析HTML页面的内容。在上面的代码中,我们使用了`...

    httpclient模拟post请求json封装表单数据的实现方法

    我们使用 `new StringEntity(jsonParam.toString(), "utf-8")` 创建了一个新的 `StringEntity` 实例,并指定字符编码为 UTF-8,以避免中文乱码问题。 设置 `StringEntity` 的内容类型为 `application/json`,这是...

    org.apache.tools.zip.*和org.apache.commons.httpclient.*实现远程文件打包下载,支持中文文件名

    5. **处理中文文件名**:在写入ZIP条目时,确保正确设置文件名的编码,通常使用UTF-8,以避免乱码问题。 6. **关闭流**:下载完成后,关闭所有打开的输入/输出流,确保资源得到释放。 这个过程不仅实现了文件的...

    Android中HTTP请求中文乱码解决办法

    在Android应用开发中,进行HTTP请求时可能会遇到中文乱码的问题。这通常发生在发送或接收包含中文字符的数据时。在本篇文章中,我们将探讨如何解决Android中HTTP请求中文乱码的常见问题,并通过一个具体的例子来说明...

    Android例子源码使用HttpClient获取网页html源代码.zip

    如果直接使用默认的UTF-8解码,可能会导致中文字符无法正确显示。 在Android 2.3.3版本中,系统支持的最小API级别是10,这意味着该例子适用于较旧的设备。在较新的Android版本中,应优先考虑使用 HttpURLConnection...

Global site tag (gtag.js) - Google Analytics