最近在做项目的时候,需要用URL进行页面间的传值(说明:传递的是中文)。
开始使用的是Server.UrlEncode()进行编码,相应的使用Server.UrlDecode()进行解码。在火狐中浏览正常。可是在IE9中测试发现是乱码。
无奈之下又使用HttpUtility.UrlEncode()编码,HttpUtility.UrlDecode()解码。本以为会好,可是可恶的IE9还是让我失望了…… 很是不解,试了对UTF8、GB2312编码方式。统统宣告失败。 无可奈何,请出Goolge、baidu。可是大家提供的方法都不行。本来想着是一个很简单的问题,可是搞了我近两个小时……简直无语 。
还好功夫不负有心人啊………… 我先用Server.UrlEncode(),进行编码;然后在用HttpUtility.UrlEncode()进行编码;最后使用HttpUtility.UrlDecode()进行解码,结果一切OK。真是搞不懂微软为什么要这样做。不走寻常路啊! 如: string testStr = “猕猴桃”; string tempStr = Server.UrlEncode(testStr); http://www.test.com?testStr=HttpUtility.UrlEncode(tempStr);
在另一个页面接收: string str = HttpUtility.UrlDecode(Request["testStr"]);
这样做就OK了……