下载网页,页面上中文乱码问题的解决

下载网页,页面上中文乱码问题的解决

以下是下载一个网页,然后再控制台显示全部的HTML代码的例程,其中使用了String自带的编码方案。
一个问题就是,在处理一个网页的时候,不能知道这个网页的编码到底是是什么。
应该用urlcon.getContentEncoding()函数来取。但是,在CSDN这个网页里面,刚好取不到。
因为我想,它没有把charset放到单独的Meta标签里面。


 1 package mynet;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.net.MalformedURLException;
 6 import java.net.URL;
 7 import java.util.Date;
 8 
 9 import sun.net.www.protocol.http.HttpURLConnection;
10 
11 public class URLDemo {
12     public static void main(String[] args) {
13 
14         System.out.println("Starting");
15         int c;
16 
17         HttpURLConnection urlcon = null;
18         try {
19             URL url = new URL("http://www.csdn.net");
20             try {
21                 urlcon = (HttpURLConnection) url.openConnection();
22             } catch (IOException e) {
23 
24             }
25             System.out.println("the date is :" + new Date(urlcon.getDate()));
26             System.out.println("content_type :" + urlcon.getContentType());
27             try {
28                 InputStream in = urlcon.getInputStream();
29                 int all = in.available();
30                 String webpage = null;
31                 while (all > 0) {
32                     byte[] b = new byte[all];
33                     in.read(b);
34                     webpage = new String(b, "UTF-8");
35                     System.out.println(webpage);
36                     all = in.available();
37                     Thread.sleep(2000);//给它点下载的时间,每两秒钟读取一次
38                 }
39                 in.close();
40                 System.out.println(webpage);
41             } catch (Exception e) {
42                 System.out.println("" + e);
43             }
44 
45         } catch (MalformedURLException e) {
46             System.out.println("" + e);
47         }
48 
49     }
50 
51 }

你可能感兴趣的:(下载网页,页面上中文乱码问题的解决)