黑马程序员技术交流社区
标题: 【上海校区】Java爬取网页源码时乱码问题 [打印本页]
作者: 摩西摩西OvO 时间: 2018-7-25 16:30
标题: 【上海校区】Java爬取网页源码时乱码问题
先上代码String strurl="http://search.dangdang.com/?key=%BB%FA%D0%B5%B1%ED&act=input"; try { URL url=new URL(strurl); //通过url建立与网页的连接 URLConnection conn=url.openConnection(); //通过链接取得网页返回的数据 InputStream is=conn.getInputStream(); //一般按行读取网页数据,并进行内容分析 //因此用BufferedReader和InputStreamReader把字节流转化为字符流的缓冲流 //进行转换时,需要处理编码格式问题 BufferedReader br=new BufferedReader(new InputStreamReader(is)); //按行读取并打印 String line=null; while((line=br.readLine())!=null){ System.out.println(line); } br.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
结果
解决方法在创建BufferedReader对象时,设置InputStreamReader对象的编码格式,如下:
BufferedReader br=new BufferedReader(new InputStreamReader(is,"GB2312"));这里的编码格式要与爬取网页的charset一致,否则依旧会乱码
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
作者: 摩西摩西OvO 时间: 2018-7-26 09:15

作者: 不二晨 时间: 2018-7-26 11:31
奈斯,很赞
作者: 吴琼老师 时间: 2018-7-26 15:27
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |