2012-04-01 36 views
1

我正在嘗試使用htmlagilitypack加載Windows Phone應用程序的網頁,問題是編碼是iso-8859-7,而htmlWeb類將頁面加載爲utf。 我嘗試用下面的代碼來解決這個問題:如何更改HtmlWeb編碼

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

我認爲這裏最簡單的方法不是使用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);