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 解码:
捣蛋的问题
上面的 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
相关阅读