A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙胜 中级黑马   /  2013-4-27 21:21  /  1682 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙胜 于 2013-5-7 22:41 编辑

以下代码,获取UTF-8网站,如:baidu, hao120
GBK网站,如sina, qq, tudou, youku.等都没有任何问题
为什么单单sohu网站就是乱码。
  1. import java.io.*;
  2. import java.net.*;
  3. public class MyIE {
  4.         private URL url;
  5.         private File file;
  6.         
  7.                
  8.         private BufferedOutputStream out;
  9.         private BufferedInputStream in;


  10.        public static void main(String[] args) throws Exception {
  11.                 new MyIE("http://www.sohu.com", "sohu.html");
  12.         }
  13.         
  14.         
  15.         public MyIE(String url, String file) {
  16.                 // TODO Auto-generated constructor stub
  17.                 try {
  18.                         this.url = new URL(url);
  19.                 } catch (MalformedURLException e) {
  20.                         // TODO Auto-generated catch block
  21.                         e.printStackTrace();
  22.                 }
  23.                 this.file = new File(file);
  24.                
  25.                 downByByte();
  26.         }
  27.         
  28.         
  29.         private void downByByte() {
  30.                
  31.                 URLConnection conn = null;
  32.                 try {
  33.                         conn = url.openConnection();
  34.                 } catch (IOException e) {
  35.                         // TODO Auto-generated catch block
  36.                         e.printStackTrace();
  37.                 }
  38.                
  39.                 try {
  40.                         in = new BufferedInputStream(conn.getInputStream());
  41.                 } catch (IOException e) {
  42.                         // TODO Auto-generated catch block
  43.                         e.printStackTrace();
  44.                 }
  45.                 try {
  46.                         out = new BufferedOutputStream(new FileOutputStream(file));
  47.                 } catch (FileNotFoundException e) {
  48.                         // TODO Auto-generated catch block
  49.                         e.printStackTrace();
  50.                 }
  51.                
  52.                 int len;
  53.                 byte[] buf = new byte[1024];
  54.                 try {
  55.                         while((len = in.read(buf)) != -1) {
  56.                                 
  57.                                 out.write(buf, 0, len);
  58.                         }
  59.                 } catch (IOException e) {
  60.                         // TODO Auto-generated catch block
  61.                         e.printStackTrace();
  62.                 }
  63.                 finally {
  64.                         if(out != null)
  65.                                 try {
  66.                                         out.close();
  67.                                 } catch (IOException e) {
  68.                                         // TODO Auto-generated catch block
  69.                                         e.printStackTrace();
  70.                                 }
  71.                         if(out != null)
  72.                                 try {
  73.                                         out.close();
  74.                                 } catch (IOException e) {
  75.                                         // TODO Auto-generated catch block
  76.                                         e.printStackTrace();
  77.                                 }
  78.                 }
  79.         }

  80. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

5 个回复

倒序浏览
一会给你解答
回复 使用道具 举报
怎么没有人解答?
回复 使用道具 举报
哥们,我试了一下,没问题啊,没有所谓的乱码
回复 使用道具 举报
http流用了gzip压缩。在解析之前先gzip解压缩,就好了。
http://www.iteye.com/problems/54506

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
不知道什么原因,已经没有问题了,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马