当前位置: 代码迷 >> C# >> 为什么上载几乎同样的2个网页,其中一个乱码,另一个显示正常
  详细解决方案

为什么上载几乎同样的2个网页,其中一个乱码,另一个显示正常

热度:3981   发布时间:2013-02-25 00:00:00.0
为什么下载几乎同样的2个网页,其中一个乱码,另一个显示正常?
http://www.bengou.com/all/index?contentfolder=&areafolder=&letterfolder=&state=2&order=update&p=1

http://www.bengou.com/all/index?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?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());
                }
            }

  相关解决方案