C# HtmlAgilityPack-如何在加载页面时设置自定义编码
使用下面的方法加载页面时,是否可以设置自定义编码C# HtmlAgilityPack-如何在加载页面时设置自定义编码,c#,wpf,encoding,load,html-agility-pack,C#,Wpf,Encoding,Load,Html Agility Pack,使用下面的方法加载页面时,是否可以设置自定义编码 HtmlWeb hwWeb = new HtmlWeb(); HtmlDocument hd = hwWeb.load("myurl"); 我想将编码设置为iso-8859-9 我使用C4.0和WPF 编辑:已在MSDN上回答。我想您可以尝试覆盖HtmlWeb对象中的编码 试试这个: var web = new HtmlWeb { AutoDetectEncoding = false, OverrideEncoding = my
HtmlWeb hwWeb = new HtmlWeb();
HtmlDocument hd = hwWeb.load("myurl");
我想将编码设置为iso-8859-9
我使用C4.0和WPF
编辑:已在MSDN上回答。我想您可以尝试覆盖HtmlWeb对象中的编码 试试这个:
var web = new HtmlWeb
{
AutoDetectEncoding = false,
OverrideEncoding = myEncoding,
};
var doc = web.Load(myUrl);
注意:OverrideEncoding属性似乎是在版本76610中添加到HTML agility pack的,因此在当前版本v1.4 66017中不可用。下一个最好的方法是在覆盖编码的情况下手动读取页面
var document = new HtmlDocument();
using (var client = new WebClient())
{
using (var stream = client.OpenRead(url))
{
var reader = new StreamReader(stream, Encoding.GetEncoding("iso-8859-9"));
var html = reader.ReadToEnd();
document.LoadHtml(html);
}
}
这是一个简单版本的解决方案,由于某些原因它被删除了这里有一个不错的答案,它处理自动检测编码以及一些其他漂亮的功能:
HtmlAlityPack无法识别OverrideEncodingAh,抱歉。看起来HtmlWeb的OverrideEncoding属性是新的,而不是在v1.4中。我使用的是最新版本作为参考。我想现在最好的选择是手动加载页面。我还想使用最新版本。我在哪里可以下载你必须下载并编译它。他们似乎没有发布任何具有此更改的预编译版本。我可能可以帮你,但我现在有互联网连接问题,所以我帮不了什么忙。另外,不用说,但是在使用它时要小心,因为它可能还没有准备好发布。我想你可以在VisualStudio中打开解决方案并点击编译。如果它不起作用,我必须在我的连接稳定后再与你联系,我能够验证你需要做什么才能使它起作用。很好的解决方案!工作完美。