<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 241,  comments - 116,  trackbacks - 0
    昨天用java抓取html文件,獲取下來的html文件打開總是帶有亂碼,弄了半天搞定了。其實要避免亂碼的一個好方法:沒有必要去判斷頁面的編碼方式,只要讀取的數(shù)據(jù)按字節(jié)(而不是按字符)保存起來就可以了,后綴為html文件,然后用瀏覽器打開,肯定是正常的。
    分析的原因:在網(wǎng)絡上傳送的數(shù)據(jù)是基于字節(jié)流的,我們要在屏幕上顯示的時候要將字節(jié)流按某種字符集解碼成String的形式,在java中就是將字節(jié)流按某種格式解碼成Unicode,在將數(shù)據(jù)寫入文件的時候,又要將String按某種格式編碼成字節(jié)流,當兩次的編碼不一致的時候,就會造成亂碼。所以在抓取網(wǎng)頁進行保存的時候,可以直接將得到的字節(jié)流保存到文件中就可以了。
    字節(jié)流與字符流主要的區(qū)別是他們的的處理方式:
    字節(jié)流是最基本的,所有的InputStream和OutputStream的子類都是,主要用在處理二進制數(shù)據(jù),它是按字節(jié)來處理的。
    實際中很多的數(shù)據(jù)是文本,又提出了字符流的概念,它是按虛擬機的encode來處理,也就是要進行字符集的轉(zhuǎn)化。
    在實際開發(fā)中出現(xiàn)的亂碼問題實際上都是在字符流和字節(jié)流之間轉(zhuǎn)化不統(tǒng)一而造成的。
    注:URLConnection的連接、超時、關閉用法總結對于我們常用的GBK中,英文是占用1個字節(jié),中文是2個;
    對于UTF-8,英文是1個,中文是3個;
    對于Unicode,英文中文都是2個。
    下面一段代碼是用來抓取并保存到本地的java程序。
    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.net.MalformedURLException;

    import java.net.URL;

     

    public class Test {

    public static void main(String[] argc) {

    URL url = null;

    FileOutputStream fos = null;

    InputStream is;

    try {

    for (int i = 0; i < 1; i++) {

    url = new URL("http://tomfish88.iteye.com/");

    byte bytes[] = new byte[1024 * 1000];

    int index = 0;

    is = url.openStream();

    int count = is.read(bytes, index, 1024 * 100);

    while (count != -1) {

    index += count;

    count = is.read(bytes, index, 1);

    }

    fos = new FileOutputStream("test.html");

    System.out.println(index);

    fos.write(bytes, 0, index);

    is.close();

    fos.close();

    }

    } catch (MalformedURLException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }
     
    posted on 2011-06-28 09:52 墻頭草 閱讀(1174) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    人人游戲網(wǎng) 軟件開發(fā)網(wǎng) 貨運專家
    主站蜘蛛池模板: 久久久www成人免费毛片| 亚洲第一精品福利| 亚洲日韩中文字幕一区| 日本高清在线免费| 亚洲欧洲精品一区二区三区| 久久国产免费观看精品3| 久久精品国产亚洲| 免费视频精品一区二区三区 | 亚洲AV之男人的天堂| 污污视频免费观看网站| 亚洲美日韩Av中文字幕无码久久久妻妇 | 免费在线人人电影网| 亚洲 综合 国产 欧洲 丝袜| 一级毛片在线完整免费观看| 亚洲欧洲久久av| 两个人看www免费视频| 日木av无码专区亚洲av毛片| 99无码人妻一区二区三区免费| 中文有码亚洲制服av片| 国产人成免费视频| 999zyz**站免费毛片| 亚洲色偷偷偷网站色偷一区| 免费一本色道久久一区| 美女羞羞免费视频网站| 久久久青草青青亚洲国产免观| 性xxxxx大片免费视频| 亚洲最大福利视频| 国产亚洲玖玖玖在线观看| 在线免费观看一级毛片| 国产精品综合专区中文字幕免费播放| 亚洲日本va在线视频观看| 国产高清免费视频| 国产在亚洲线视频观看| 久久亚洲AV无码精品色午夜麻| 日韩版码免费福利视频| 日韩免费码中文在线观看| 久久久久亚洲精品日久生情| 国产一区二区三区在线免费| 亚欧免费一级毛片| 在线视频亚洲一区| 亚洲精品网站在线观看你懂的|