2013-12-10 102 views
0

我可是從這個site 試圖獲取源代碼獲取源代碼時,請參見上面問題從網頁

鏈接我使用此代碼獲取來源:

 in = DownloaderUtil.fetch(linkToFetch);; 
     reader = new BufferedReader(new InputStreamReader(in,"ISO-8859-1")); 
     str = new StringBuilder(); 
     while((line = reader.readLine()) != null) 
     { 
      str.append(line+"\n"); 
      count ++; 
     } 

在第一時間,我可以能夠在沒有任何錯誤的情況下獲得良好的源代碼。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"....something like this 

但第二次或有時,我無法從此頁面獲得正確的源代碼,它包含所有奇怪的字符。

我已經認爲這個網站是特殊的,每次我要求它改變編碼字符集。但我試着用UTF-8,ISO-8859-15,我仍然得到相同的結果。 你跟我面對同樣的問題嗎? 你能幫我解決它或給我的方式從本網站獲取正確的源代碼嗎? Thx。

+0

任何人都可以幫助我嗎? –

回答

0

Finnally我找到了我自己的解決方案。 原因是本站壓縮源碼GZIP所以我需要在使用前解壓縮。

InputStream instream = response.getEntity().getContent(); 
Header contentEncoding = response.getFirstHeader("Content-Encoding"); 
if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) { 
    instream = new GZIPInputStream(instream); 
} 

謝謝!