zoukankan      html  css  js  c++  java
  • Windows Phone Mango开发实践——GB2312编码转换

    代号为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.UTF7EncodingSystem.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的开发。

      

    本文版权归作者和博客园共有,转载请注明出处和作者。

  • 相关阅读:
    洛谷 P1508 Likecloud-吃、吃、吃
    Codevs 1158 尼克的任务
    2017.10.6 国庆清北 D6T2 同余方程组
    2017.10.6 国庆清北 D6T1 排序
    2017.10.3 国庆清北 D3T3 解迷游戏
    2017.10.3 国庆清北 D3T2 公交车
    2017.10.3 国庆清北 D3T1 括号序列
    2017.10.4 国庆清北 D4T1 财富
    2017.10.7 国庆清北 D7T2 第k大区间
    2017.10.7 国庆清北 D7T1 计数
  • 原文地址:https://www.cnblogs.com/xuesong/p/2288754.html
Copyright © 2011-2022 走看看