Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HtmlAgilityPack-如何在加载页面时设置自定义编码_C#_Wpf_Encoding_Load_Html Agility Pack - Fatal编程技术网

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中打开解决方案并点击编译。如果它不起作用,我必须在我的连接稳定后再与你联系,我能够验证你需要做什么才能使它起作用。很好的解决方案!工作完美。