2011-10-25 118 views

回答

3

我想你可以嘗試覆蓋HtmlWeb對象中的編碼。

試試這個:

var web = new HtmlWeb 
{ 
    AutoDetectEncoding = false, 
    OverrideEncoding = myEncoding, 
}; 
var doc = web.Load(myUrl); 

注:看來,加入了OverrideEncoding屬性爲HTML敏捷包在修訂76610,所以它不是在當前版本V1.4(66017)提供。接下來最好的做法是用編碼重寫手動讀取頁面。

+0

htmlagilitypack不承認OverrideEncoding – MonsterMMORPG

+0

啊,對不起。它看起來像'HtmlWeb'的OverrideEncoding屬性是新的,而不是在v1.4中。我使用最新版本作爲參考([源](http://htmlagilitypack.codeplex.com/SourceControl/changeset/view/91044#1336968))。我想現在最好的選擇是手動加載頁面。 –

+0

我也想用最新的。我在哪裏可以下載 – MonsterMMORPG

3
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(因爲某些原因它刪除了)

+0

不錯的解決方案!完美的作品。 –

相關問題