真正解决HtmlAgilityPack抓取网页 中文乱码问题

HTMLAgilityPack官方Dll处理汉字时出现乱码。

解决方案:

1.打开官方提供的Source项目

2.找到HtmlAgilityPack项目

 

3.找到“ private HttpStatusCode Get 方法”

 

 

4.按如下修改代码

//原官方代码 //Encoding respenc = !string.IsNullOrEmpty(resp.ContentEncoding) // ? Encoding.GetEncoding(resp.ContentEncoding) // : null; //修改中文乱码问题 System.Text.Encoding respenc; if ((resp.ContentEncoding != null) && (resp.ContentEncoding.Length > 0)) { respenc = System.Text.Encoding.GetEncoding(resp.ContentEncoding); } else if ((resp.CharacterSet != null) && (resp.CharacterSet.Length > 0))//根据Content-Type中获取的charset编码 { if (string.Compare(resp.CharacterSet, "ISO-8859-1", true, System.Globalization.CultureInfo.InvariantCulture) == 0) respenc = System.Text.Encoding.GetEncoding("GB2312"); else respenc = System.Text.Encoding.GetEncoding(resp.CharacterSet); } else { respenc = System.Text.Encoding.GetEncoding("GB2312"); } //编码修改结束

 

 

上个修改后的HtmlAgilityPack抓取网页中文正常显示的图片

你可能感兴趣的:(ASP.NET,系统优化)