HtmlAgilityPack - 如何在加載頁面時設置自定義編碼


使用以下方法加載頁面時是否可以設置自定義編碼?

HtmlWeb hwWeb = new HtmlWeb();
HtmlDocument hd = hwWeb.load("myurl");

我想將編碼設置為“iso-8859-9”。

我使用C#4.0和WPF。

編輯: 問題已在MSDN上得到解答。

一般承認的答案

我想你可以嘗試覆蓋HtmlWebHtmlWeb的編碼。

嘗試這個:

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);
    }
}

這是這裡解答的解決方案的簡單版本(由於某些原因它被刪除)





許可下: CC-BY-SA
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因