Windows Phone Mango開發實踐——GB2312編碼轉換

來源:互聯網
上載者:User

代號為Mango的Windows Phone SDK 7.1支援的編碼字元集為UTF-8、UTF-16、UTF-16BE和UTF-16LE,遺憾的是沒有GB2312 。而在開發中文Windows Phone應用時,我們卻遇到Web服務上的字元集為GB2312的困惑。

本文總結了GB2312轉換的幾種方式,當您再遇到類似的問題時不必大費周折的網路搜尋或者提問了,只要在其中選擇一個喜歡的方式去解決即可。在此特別感謝在MSDN論壇分享第三種解決方案的逆龍咆哮(網名)。

本文尚有不足之處,敬請指點迷津。

方法一 GB2312 for Silverlight

GB2312Encoding類繼承Encoding 抽象類別,能讓Silverlight(包括Windows Phone)應用支援 GB2312 簡體中文字元集。

GB2312Encoding類完整的實現了 Encoding 的所有功能,因此你可以很容易的實現所有的字元集編碼功能。

程式碼範例

 

WebClient _wc = new WebClient();

_wc.Encoding = new GB2312.GB2312Encoding();

_wc.DownloadStringCompleted += (ss, ee) => txtResult.Text = ee.Result;

_wc.DownloadStringAsync(new Uri(txtUrl.Text));

如何使用

把 GB2312Encoding.cs 和 gb2312.bin 檔案複製到你的項目並確保

gb2312.bin 檔案的build action 屬性設定為 "Embedded Resource"

gb2312.bin 檔案的檔案名稱正確(不能修改此檔案名稱)

GB2312Encoding.csgb2312.bin 檔案在同一個檔案夾

 

http://gb2312.codeplex.com/

 

方法二 在Web服務上執行Encoding和Decoding

利用.NET Framwork提供的其它的Encoding類如:System.Text.ASCIIEncoding, System.Text.UTF7Encoding 和 System.Text.UTF32Encoding,在Web服務上執行Encoding和Decoding操作。

方法三 解析GB2312編碼的XML檔案

XML的編碼是GB2312,使用using (XmlReader reader = XmlReader.Create(streamResult))讀取的時候系統會提示錯誤資訊:system does not support "gb2312"。那麼該如何解決呢?

首先將Stream轉換成string,再讀取XML的資訊。

var sr = new StreamReader(streamResult);

string srResult = sr.ReadToEnd();

using (XmlReader reader = XmlReader.Create(new StringReader(srResult)))

{

reader.ReadToFollowing("encode");

encode = reader.ReadElementContentAsString();

 

reader.ReadToFollowing("decode");

decode = reader.ReadElementContentAsString();

}

 

 

作者: 雪松

出處: http://www.cnblogs.com/highcedar

新浪微博: http://weibo.com/highcedar

 

關於作者:

專註於Windows Azure和Windows Phone的開發。

  

本文著作權歸作者和部落格園共有,轉載請註明出處和作者。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.