在 URL 中编码的值,继续放在 Redirect 中作为参数时,还需要编码吗?

作者:vkvi 来源:ITPOW(原创) 日期:2020-5-16

首次进入时使用的参数

Response.Redirect("itpow.aspx?id=1&param=" + HttpUtility.UrlEncode("p1=1&p2=2"));

如上,param 参数的值是 p1=1&p2=2,由于与 URL 的约定字符冲突,所以需要使用 UrlEncode。

那么在 itpow.aspx 中,如果我们想继续定位到 id=2,param 不变,那么我们将 param 取下来后,组装 URL 时,还需要 UrlEncode 吗?

需要!

Response.Redirect("itpow.aspx?id=2&param=" + HttpUtility.UrlEncode(Request.QueryString["param"]));

因为我们 Request.QueryString 取出来的值是解了码的,如果要再将进入 URL 作为参数,则还需要编码。

相关文章