为什么下载几乎同样的2个网页,其中一个乱码,另一个显示正常?
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也不行。
这是为什么呢?
------解决方案--------------------可能是压缩了,也有可能是编码格式不一样
------解决方案-------------------- WebRequest request = HttpWebRequest.Create("http://www.bengou.com/all/index.html?contentfolder=&areafolder=&letterfolder=&state=2&order=update&p=2");
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Console.WriteLine(response.ContentEncoding);
gzip
======>
using (GZipStream zipStream = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress, false))
{
using (StreamReader reader = new StreamReader(zipStream))
{
Console.WriteLine(reader.ReadToEnd());
}
}