使用下面的方法加載頁面時可以設置自定義編碼嗎?HtmlAgilityPack - 如何在加載頁面時設置自定義編碼
HtmlWeb hwWeb = new HtmlWeb();
HtmlDocument hd = hwWeb.load("myurl");
我想將編碼設置爲「iso-8859-9」。
我使用C#4.0和WPF。
編輯:The question已在MSDN上得到解答。
使用下面的方法加載頁面時可以設置自定義編碼嗎?HtmlAgilityPack - 如何在加載頁面時設置自定義編碼
HtmlWeb hwWeb = new HtmlWeb();
HtmlDocument hd = hwWeb.load("myurl");
我想將編碼設置爲「iso-8859-9」。
我使用C#4.0和WPF。
編輯:The question已在MSDN上得到解答。
我想你可以嘗試覆蓋HtmlWeb
對象中的編碼。
試試這個:
var web = new HtmlWeb
{
AutoDetectEncoding = false,
OverrideEncoding = myEncoding,
};
var doc = web.Load(myUrl);
注:看來,加入了OverrideEncoding
屬性爲HTML敏捷包在修訂76610,所以它不是在當前版本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);
}
}
這是解決方案的簡單版本回答here(因爲某些原因它刪除了)
不錯的解決方案!完美的作品。 –
一個體面的答案是在這裏它處理自動檢測編碼,以及一些其他的漂亮特點:
htmlagilitypack不承認OverrideEncoding – MonsterMMORPG
啊,對不起。它看起來像'HtmlWeb'的OverrideEncoding屬性是新的,而不是在v1.4中。我使用最新版本作爲參考([源](http://htmlagilitypack.codeplex.com/SourceControl/changeset/view/91044#1336968))。我想現在最好的選擇是手動加載頁面。 –
我也想用最新的。我在哪裏可以下載 – MonsterMMORPG