码迷,mamicode.com
首页 > Web开发 > 详细

关于HtmlAgilityPack解析页面中数据乱码问题

时间:2014-08-06 18:25:51      阅读:468      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   数据   ar   问题   div   html   

第一种方式:
     public static HtmlDocument LoadHtmlByUrls(string url)
        {
            HtmlDocument htmldoc;
            HtmlWeb htmlWeb = new HtmlWeb();  //不够完善  此内置方法导致中文乱码
            //htmlWeb.OverrideEncoding = Encoding.UTF8;
            htmldoc = htmlWeb.Load(url);
            Encoding coding = htmldoc.StreamEncoding;
                        
                        htmlWeb.OverrideEncoding = coding;
                        htmldoc = htmlWeb.Load(url);
                      string str = htmldoc.DocumentNode.InnerHtml;
            return htmldoc;
        }
上面的方法解析大部分是没有问题的,但是会经常碰到解析乱码的问题,那是因为htmlweb调用的是ie访问。可能是它的不完善导致了访问数据出现乱码现象,我们可以用第二种自己定义请求访问数据的方式来解析url的数据。
第二种方式:
       /// <summary>
        /// 取得 url 对应的 HtmlDocument 
        /// </summary>
        /// <param name="url"></param>
        /// <returns>中文不乱码(如果出了问题请用将上面的方法名改成当前方法名即可)</returns>
        public static HtmlDocument LoadHtmlByUrl(string url)
        {
            HtmlDocument htmldoc = new HtmlDocument();
            HttpWebRequest req;
            req = WebRequest.Create(new Uri(url)) as HttpWebRequest;
            req.Method = "GET";
            WebResponse rs = req.GetResponse();
            Stream rss = rs.GetResponseStream();
            htmldoc.Load(rss);
            string str = htmldoc.DocumentNode.InnerHtml;
            return htmldoc;
        }
以上两种方式或许不是最好的方法,但是也算是一种经验。




关于HtmlAgilityPack解析页面中数据乱码问题,布布扣,bubuko.com

关于HtmlAgilityPack解析页面中数据乱码问题

标签:style   http   color   数据   ar   问题   div   html   

原文地址:http://www.cnblogs.com/JesseLu/p/3895115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!