我正在尝试使用htmlagilitypack为windows phone应用程序加载网页,问题是编码是iso-8859-7而htmlWeb类将页面加载为utf。 我尝试用以下代码解决这个问题:
public auditPage()
{
InitializeComponent();
HtmlWeb hwWeb = new HtmlWeb();
hwWeb = new HtmlWeb
{
AutoDetectEncoding = false,
OverrideEncoding = Encoding.GetEncoding("iso-8859-7"),
};
HtmlWeb.LoadAsync("url", HtmlWeb_load);
}
但我收到以下错误: 'HtmlAgilityPack.HtmlWeb'不包含'OverrideEncoding'的定义 'HtmlAgilityPack.HtmlWeb'不包含'AutoDetectEncoding'的定义。我该怎么做才能正确编码html页面?
答案 0 :(得分:0)
我认为这里最简单的方法是不使用HtmlWeb
。它似乎在正确的流编码检测方面存在一些问题。
但你可以手动完成,例如使用WebClient.OpenReadAsync
,然后使用HtmlDocument.Load
方法接受流编码作为第二个参数,如下所示:
var client = new WebClient();
client.OpenReadCompleted += (sender, e) =>
{
doc.Load(e.Result, Encoding.GetEncoding("iso-8859-7"));
e.Result.Close();
};
client.OpenReadAsync(url);
答案 1 :(得分:0)
Autodetectencoding已添加到其中一个最新版本中,可能在您添加到项目中的版本中不可用。 Version 1.4.0 has this property