日期:2014-05-17  浏览次数:20661 次

为什么下载几乎同样的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());
                }
            }