http://www.bengou.com/all/index.html?contentfolder=&areafolder=&letterfolder=&state=2&order=update&p=1
和
http://www.bengou.com/all/index.html?contentfolder=&areafolder=&letterfolder=&state=2&order=update&p=2
两个网页。源代码几乎完全相同。
charset也都是utf-8
但是用 WebClient client = new WebClient();
client.Encoding = Encoding.GetEncoding("utf-8");
string htmlStr = client.DownloadString(url);下载源码的时候第一个网页可以正常的显示,而第二个显示乱码。把utf-8换成gb2312也不行。
这是为什么呢?
和
http://www.bengou.com/all/index.html?contentfolder=&areafolder=&letterfolder=&state=2&order=update&p=2
两个网页。源代码几乎完全相同。
charset也都是utf-8
但是用 WebClient client = new WebClient();
client.Encoding = Encoding.GetEncoding("utf-8");
string htmlStr = client.DownloadString(url);下载源码的时候第一个网页可以正常的显示,而第二个显示乱码。把utf-8换成gb2312也不行。
这是为什么呢?
用上面写的3行代码下载。
其中第一个网页可以正常下载,源代码可以顺利存到htmlStr这个变量里面。
但是第二个网页用此代码下载的时候htmlStr里面就只有乱码了。用浏览器打开这2个网页,查看源代码,里面的head代码一模一样<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>漫画大全_笨狗漫画</title>
<meta content="笨狗漫画独家整理了类的漫画大全,提供漫画全集下载和连载等" name="Description" />
<link rel="stylesheet" href="http://www.bengou.com/images/common.css">
<link rel="stylesheet" href="http://www.bengou.com/images/global.css">
<script src="http://www.duowan.com/public/assets/sys/js/jquery.js?02131514.js"></script>
<script src="http://www.duowan.com/public/assets/sys/js/dww3.min.js?02221554.js"></script>
<script src="http://www.duowan.com/public/assets/sys/js/udb.v1.0.js"></script>
<script src="http://www.bengou.com/js/jquery.cookie.js"></script>
<script src="http://www.bengou.com/js/jstore/jquery.jstore-min.js"></script>
<script src="http://www.bengou.com/js/user_action.js"></script></head>charset都是utf-8,为什么下载会有一个乱码一个正常的情况呢?
<meta charset="gb2312">
string html1 = new webClient().CrawlHtml("http://www.bengou.com/all/index.html?contentfolder=&areafolder=&letterfolder=&state=2&order=update&p=1");
string html2 = new webClient().CrawlHtml("http://www.bengou.com/all/index.html?contentfolder=&areafolder=&letterfolder=&state=2&order=update&p=2");
gzip
======> using (GZipStream zipStream = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress, false))
{
using (StreamReader reader = new StreamReader(zipStream))
{
Console.WriteLine(reader.ReadToEnd());
}
}