首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java读取网页封存之后都是乱码

2012-09-15 
java读取网页保存之后都是乱码我用java读取一个网站的源码,但是获取到的源码都是乱码,由于事先不清楚网站

java读取网页保存之后都是乱码
我用java读取一个网站的源码,但是获取到的源码都是乱码,由于事先不清楚网站的URL也就是说不清楚网站的编码,所以下面的建议不要和我说。

Java code
URL url = new URL(baseUrl);BufferedReader buff = new BufferedReader(new InputStreamReader(url.openStream()), charSet);StringBuilder sb = new StringBuilder();String s;while((s = buff.readLine()) != null){  sb.append(s);}return sb.toString();


上面的代码我相信大家都知道,但是正如我上面所说,我不知道人家要访问什么网站,所以固定的字符集是不可能的!有些网站是utf-8编码、有的是GB2312/GBK编码、有些还是BIG5编码。我该怎么处理?

[解决办法]
Java code
URL url =  new URL("http://www.baidu.com");        BufferedReader buff  = new BufferedReader(new InputStreamReader(url.openStream()));        StringBuilder sb = new StringBuilder();        String s = null;            while((s = buff.readLine()) != null){              sb.append(s+"\n");            }        System.out.println(sb);
[解决办法]
应该用:
URLConnection cn = url.openConnection();

然后在从头信息中获取其字符集设置:
cn.getContentEncoding();
[解决办法]
探讨

应该用:
URLConnection cn = url.openConnection();

然后在从头信息中获取其字符集设置:
cn.getContentEncoding();

[解决办法]
探讨

引用:

Java code

URL url = new URL("http://www.baidu.com");
BufferedReader buff = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuilder sb = new StringBuilder();
……

[解决办法]
哦,很多网站不直接写这个 HTTP-HEAD 信息,看来你只能用另一个函数了,然后再自己解析:

System.out.println(conn.getContentType());

输出:
text/html;charset=gbk

你要自己拆解下。。。

热点排行