您的位置:首页 > Web前端 > HTML

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

2011-05-12 10:50 811 查看
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抓取网页中文正常显示的图片

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: