黑马程序员技术交流社区

标题: 【上海校区】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();        }结果

解决方法

在创建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