文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Windows Phone 7的WebBroswerTask编码问题

Windows Phone 7的WebBroswerTask编码问题

时间:2010-12-08  来源:博比123

 

WebBrowserTask task = new WebBrowserTask();
task.URL = "http://www.google.com.hk/m/search?q=%E5%93%88%E5%93%88";
task.Show();

 

自己在VS里试了一下,果然如此,搜索结果是乱码。

遇到这种问题第一反应就是编码问题,查看了一下模拟器的地址栏里,%E5%93%88%E5%93%88被编码成了奇怪的字符,打开MSDN查看了一个URL这个属性,其中在Remarks里有这样的描述:URLs that contain special characters must be escaped before being assigned to the URL property. Use the Uri.EscapeDataString method to escape the URL string.(地址:http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(MICROSOFT.PHONE.TASKS.WEBBROWSERTASK.URL);k(URL);k(TargetFrameworkMoniker-%22SILVERLIGHT,VERSION%3dV4.0%22);k(DevLang-CSHARP)&rd=true

于是重新尝试了一下,修改了代码如下:

WebBrowserTask task = new WebBrowserTask();
task.URL = "http://www.google.com.hk/m/search?q=" + Uri.EscapeDataString("哈哈");
task.Show();

 

再看一下,哇,还是乱码。百思不得奇解,难道是MSDN出问题了?再仔细阅读了一下刚才那段Remarks,注意到了中间这样的关键句:be escaped before being assigned to the URL property.嗯,人家说是针对属性进行序列化的嘛,于是再改进代码:

 

WebBrowserTask task = new WebBrowserTask();
task.URL = Uri.EscapeDataString("http://www.google.com.hk/m/search?q=" + Uri.EscapeDataString("哈哈"));
task.Show();

F5,运行成功,但是还是有些疑惑。照理说Uri.EscapeDataString("哈哈")以后URI里就不含有特殊字符了,为什么还需要再序列化一次呢?求各位达人解惑下,不胜感激。

相关阅读 更多 +
排行榜 更多 +
吹风机射击 v1.0 安卓版

吹风机射击 v1.0 安卓版

飞行射击 下载
吹风机射击 v1.0 安卓版

吹风机射击 v1.0 安卓版

飞行射击 下载
吹风机射击 v1.0 安卓版

吹风机射击 v1.0 安卓版

飞行射击 下载