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也不行。
这是为什么呢?

解决方案 »

  1.   

     试过了,和webclient一样乱码
      

  2.   

       用webbrowser 试下
      

  3.   

    我想用代码把上面这2个网页的源代码下载下来,存到string里面。
    用上面写的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,为什么下载会有一个乱码一个正常的情况呢?
      

  4.   

    <meta charset="utf-8"> 这里是字符集啊,还是编码格式啊??
    <meta charset="gb2312"> 
      

  5.   

    webbrowser是调用系统Browser吗?
      

  6.   

    试试fastCSharp
                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");
      

  7.   

                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());
                    }
                }