none
Windows Phone 7 WebBrowser 中文乱码问题 RRS feed

  • 问题

  • 您好:
               string content = LoadStringFromStore(key)//在此处加断点
               this.Browser.NavigateToString(content);
    
    content是从独立存储里读出的字符串,是通过WebBrowser.SaveToString()获取后存进独立存储的;
    当执行完LoadStringFromStore(Key)后,我用VS自带的HTML可视化工具查看content,可以看到完整的网页,没有乱码。
    但是执行了NavigateTostring(content)后,只有图片显示,汉字就成乱码了,请问怎么解决?如何解决gb2312编码不支持的问题?
    您可否提供示例性代码,以供我学习参考。
                                                                                                谢谢

    • 已编辑 铂原联动 2011年12月5日 2:07
    • 已移动 Jiong ShiMVP 2011年12月5日 10:22 (发件人:Windows Phone 用户)
    2011年12月4日 17:13

答案

全部回复

  • 你好,

    windows phone 7 默认不支持gb2312解码,可以通过开源库HtmlAgilityPack来解决,具体可以参考这篇青瓷的Blog:

    windows phone 7,sliverlight 下载网页的解析,关于wp7 gb2312编码


    Keep Fighting
    2011年12月5日 4:33
  • 你好,

    这个库没办法解决我的问题,我通过WebBrowser直接请求网页,是正常显示的,只是通过SaveToString()获得字符串,将此字符串存在独立存储空间里,再取得后再通过NavigateToString()就会显示乱码,这是为什么呢?是因为存进独立存储空间的时候被编码,或者序列号造成的?

    2011年12月5日 6:19
  • 帮你转到WP7开发板块上吧。看看大家有什么方法。
    Keep Fighting
    2011年12月5日 10:22
  • 逆龙咆哮朋友解决XML编码为GB2312的问题的方法也许能对解决乱码的问题有所帮助,请参考http://social.msdn.microsoft.com/Forums/zh-CN/windowsphonezhchs/thread/722dec0f-1ec2-43b4-bcb1-5f2d3e4845cb
    Xuesong
    • 已标记为答案 Shi Ding 2011年12月13日 2:03
    2011年12月6日 8:36
    版主
  • 将中文转换成 Unicode编码就可以了,不过性能不是很好:

     public static string Unicode2HTML(string HTML,bool isHtml)

            {

                StringBuilder str = new StringBuilder();

                char c;

                for (int i = 0; i < HTML.Length; i++)

                {

                    c = HTML[i];

                    if (Convert.ToInt32(c) > 127)

                    {

                        str.Append("&#" + Convert.ToInt32(c) + ";");

                    }

                    else

                    {

                        str.Append(c);

                    }

                }

                return str.ToString();

            }

    2011年12月7日 3:07