web - java保存繁体网页打开后出现乱码
天蓬老师
天蓬老师 2017-04-17 10:57:34
[Java讨论组]

想实现下保存网页,试了下百度可以,打开来没有问题,但试了试url如果是www.google.com.hk,打开来就是乱码。。。不知道怎么解决
学java没多久。。新手求教。。
以下是java代码

	public static void savePage(URL url) throws IOException, ParserException, IllegalArgumentException{
		InputStream is = url.openStream();
		int i;
		String title = HTMLHelper.getTitle(url);
		String file = url.getFile().trim();
		String host = url.getHost().trim();
		String filename = title+"("+url.getHost()+file+")";
		FileOutputStream fos = new FileOutputStream("Pages\\"+filename+".html");
		do{
			i = is.read();
			fos.write(i);
		}
		while(i!=-1);
		is.close();
		fos.close();
		System.out.println("Success!The filename is:"+filename+".html");
		
	}
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
黄舟

应该是文件编码的问题,百度首页编码是GBK,而Google则是UTF-8。

选择合适的编辑器打开,应当能够正确识别。

怪我咯

我觉得有两种可能:
1、google禁止了爬虫,需要模拟浏览器,在请求头添加浏览器信息才可以
2、google使用了gzip压缩,需要对下载过来的数据进行gzip解压才能查看

阿神

试了一下, 百度网页为utf8; 直接java访问www.google.com.hk拿到的网页为big5.

直接浏览器看www.google.com.hk, 则得到简体中文 网页. 但是也可以选择繁体中文.

应该不是用Accept Language报头控制的. Firebug看了下, 用的是cookie: PREF=ID=dc26c65e5190d12e:U=4487c9dd846518f1:FF=2:LD=zh-CN:NW=1:TM=1368715005:LM=1375804660:GM=1:S=ipFDUy0r8i8WGrOP; 如果发繁体中文请求, 则为: PREF= (...省略)LD=zh-TW...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号