httpclient中文乱码问题解决方法

Posted on

httpclient中文乱码问题解决方法

bingxuelian

这里,介绍一种解决抓取后网页内容显示为乱码的办法。 前几天,在抓取某网站的信息时(http://www.99sj.com/Price/Price/Default.aspx),第一次碰到了这种应用下的乱码问题。于是上网查了一下,提供的解决办法大致有两种: 1>  private static final String CONTENTCHARSET = "GBK"; httpClient.getParams().setContentCharset("UTF-8"); or httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, CONTENT_CHARSET); 2>  private static final String CONTENTTYPE = " text/html; charset=GBK"; getMethod.setRequestHeader("Content-Type", CONTENTTYPE); 测试了,没有任何效果(换成UTF-8也不行)。也用了String result = new String(pageSrc.getBytes("UTF-8"),"GBK"),依然无效。 在焦头烂额时想到了以前在学校时经常用的一句话:找问题要会追根溯源。仔细想想,字符串里面的文本内容也是通过文件流获取的,既然转换字符串字符编码不起作用,那可以设置文件流的默认编码吗?查了jdk,是可行的。 private static final String CHARSET = "UTF-8"; InputStream ins = getMethod.getResponseBodyAsStream(); //按指定的字符集构建文件流 BufferedReader br = new BufferedReader(new InputStreamReader(ins,CHARSET)); StringBuffer sbf = new StringBuffer(); String line = null; while ((line = br.readLine()) != null) { sbf.append(line); } /// 回收资源 // br.close(); getMethod.releaseConnection(); /// 页面源文件 // pageSource = sbf.toString(); 问题解决,^^。这里的CHARSET要根据实际情况设置 /#搜索引擎--爬虫技术

希望本站内容对您有点用处,有什么疑问或建议请在后面留言评论
转载请注明作者(RobinChia)和出处 It so life ,请勿用于任何商业用途