欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于httpclient的少数字符乱码

更新时间: 2014-01-05 02:34:01 责任编辑: Author_N1

 

关于httpClient的个别字符乱码

关于httpClient的个别字符乱码

近期在做抓取的工作,登录到别人的网站上获取页面的信息,解析之后封装成自己的东西。

遇到一个问题,httpclient的post方法实现的连接网页,后来解析时有一个字出现了乱码。先附上我的代码:


public String getCourse(String sessionId) throws ClientProtocolException,
IOException {
HttpClient client = new DefaultHttpClient();
String url = "http://218.195.96.24/Jwmis/znpk/Pri_StuSel_rpt.aspx";

HttpPost post1 = new HttpPost(url);
String year = "";
List<NameValuePair> params = Lists.newArrayList();

int currentYear = DateUtil.getYear();
int currentMonth = DateUtil.getMonth();

if (currentMonth < 9) {
year = (currentYear - 1) + "1";
} else {
year = currentYear + "0";
}

// String year = CrawlerConfigUtil.SHANXILIGONG_YEAR;//
// 陕西理工的课表查询年份写在配置文件
params.add(new BasicNameValuePair("Sel_XNXQ", year));// 年份
params.add(new BasicNameValuePair("px", "1"));
params.add(new BasicNameValuePair("rad", "1"));
params.add(new BasicNameValuePair("Submit01", "检索"));
post1.setHeader("Content-Type", "application/x-www-form-urlencoded");

post1.setHeader("Cookie", "ASP.NET_SessionId=" + sessionId);
post1.setHeader(
"User-Agent",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Firefox/24.0");


//设置请求的编码为utf-8
client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");

//设置请求中传递参数的编码
post1.setEntity(new UrlEncodedFormEntity(params,"gb2312"));



HttpResponse response1 = client.execute(post1);

HttpEntity entity1 = response1.getEntity();

//设置响应的编码为gbk
String result1 = EntityUtilsl.toString(entity1,"GBK");



return result1;
}




这里返回的result1,不管怎么去设置请求编码,请求参数编码,还有响应的编码,都有个别字符编码的问题。最终找到一种解决方案,分享出来给大家,希望对需要的人有帮助。




//设置响应的编码为gbk
String result1 = EntityUtilsl.toString(entity1,"GBK");


更改为:byte[] bytearray = EntityUtils.toByteArray(entity1);
String result1 = new String(bytearray, "gbk");

就是说先将其转为byte[],然后再转为字符串。就可以解决问题了。










上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:34:01
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/11509/
本文WWW.DOC100.NET DOC100.NET版权所有。