关闭

Windows Phone 7 中将Gb2312编码转换成UTF-8

540人阅读 评论(1) 收藏 举报

相信大家在wp7开发时使用一些网站提供的API的时候会发现他们提供的API的编码是GB2312的,而wp7并不支持。

前一阵子我在做一个应用的时候也遇到了这个问题。群里的一个大大提供了两个类帮忙解决了这个问题。

/Files/Angle-Louis/GB2312相关的编码类.rar

那么如何使用这两个类呢?

比如您使用了Webclient从网络上获取资源,那么在Client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)函数中

 

                byte[] txtBytes = StreamToBytes(e.Result);
                Gb2312Encoding encoding = new Gb2312Encoding();
                string str1 = encoding.GetString(txtBytes, 0, txtBytes.Length);
                byte[] uftBytes = Encoding.UTF8.GetBytes(str1);
                //System.Convert.FromBase64String(str1);
                Stream utfStream = BytesToStream(uftBytes);
                using (StreamReader UtfReader = new StreamReader(utfStream))
                {
                    string Result = UtfReader.ReadToEnd();
                    //这里已经是Utf-8的编码了
                }
 

 

        public byte[] StreamToBytes(Stream stream)
        {
            byte[] bytes = new byte[stream.Length];
            stream.Read(bytes, 0, bytes.Length);

            // 设置当前流的位置为流的开始 
            stream.Seek(0, SeekOrigin.Begin);
            return bytes;
        }
        public Stream BytesToStream(byte[] bytes)
        {
            Stream stream = new MemoryStream(bytes);
            return stream;
        }
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22061次
    • 积分:418
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:27篇
    • 译文:0篇
    • 评论:3条
    最新评论