使用 Page.ClientQueryString

作者:vkvi 来源:ITPOW(原创) 日期:2009-12-5

Page.ClientQueryString 返回 URL 中的查询字符串部分。

比如网址是:http://localhost/List.aspx?page=0&key=%E5%8D%83%E4%B8%80

Page.ClientQueryString 就是:page=0&key=%u5343%u4e00

咦,怎么和 URL 问号后面的内容不同呀?原来 Page.ClientQueryString 返回的是经过 UrlEncode 编码的。要用 HttpServerUtility.UrlDecode 解码:

l1.Text = HttpUtility.UrlDecode(Page.ClientQueryString); // 结果是:page=0&key=%E5%8D%83%E4%B8%80

捣蛋的问题

上面的 URL 用的是 UTF-8 编码,如果把 %E5%8D%83%E4%B8%80 替换成中文,即“ITPOW”、或者 GB2312 编码的 URL“%C7%A7%D2%BB”,会是什么结果呢?

这就很头痛了,Page.ClientQueryString 的结果是:%u01e7%u04bb,只是这东西解码出来是乱码。主要是因为 ASP.NET 中网页是 UTF-8 格式。

无聊的问题

如果 URL 一半是中文,一半是 GB2312 编码的,比如“千%D2%BB”,会是什么结果呢?

Page.ClientQueryString 的结果是:%u01e7%u04bb

相关阅读

相关文章