windows phone 7,sliverlight 下載網頁的解析,關於wp7 gb2312編碼)

來源:互聯網
上載者:User

關於silverlight和wp7(windows phone 7)是預設不支援gb2312解碼的,

所以從網上下載的Html大部分都是亂碼。

例如:http://news.sina.com.cn/s/2011-11-25/120923524756.shtml

下面是示範一個wp7程式

 1    WebClient webClenet=new WebClient();
2 webClenet.DownloadStringAsync(new Uri("http://news.sina.com.cn/s/2011-11-25/120923524756.shtml", UriKind.RelativeOrAbsolute));
3 webClenet.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClenet_DownloadStringCompleted);
4
5
6
7
8
9
10 回調事件:
11 void webClenet_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
12 {
13 string s= e.Result;
14 }

調試發現

 

幾乎全部是亂碼問題.

將編碼設為utf-8同樣是亂碼。

於是引用了一個開源的庫HtmlAgilityPack(包含編碼還處理HTML節點)

為:http://www.codeplex.com/htmlagilitypack

將HtmlAgilityPack.dll引用到項目中,這時會彈出一個提示,大概就是這不是一個windows phone的類庫,不理會,直接確定。

然後修改一下我們的代碼

WebClient webClenet=new WebClient();
         webClenet.Encoding = new HtmlAgilityPack.Gb2312Encoding(); //加入這句設定編碼
         webClenet.DownloadStringAsync(new Uri("http://news.sina.com.cn/s/2011-11-25/120923524756.shtml", UriKind.RelativeOrAbsolute));    
         webClenet.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClenet_DownloadStringCompleted);

 

調試一下,結果

 

終於看到我們的中文啦。

同時,HtmlAgilityPack不僅幫我們解決了gb2312的編碼問題,它還是我們解析HTML的利器哦~!  

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.