我正在尝试从此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)
最后,我找到了解决方案。 原因是这个站点压缩源代码GZIP所以我需要在使用前解压缩。
InputStream instream = response.getEntity().getContent();
Header contentEncoding = response.getFirstHeader("Content-Encoding");
if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
instream = new GZIPInputStream(instream);
}
谢谢!