首页 > 解决方案 > 如何对 QueryString 中包含特殊字符的 Url 进行编码和解码?

问题描述

我正在使用查询字符串中的 URL 传递多个参数。参数值包含特殊字符,如 +,&, ,= 等。

我应该如何编码/解码 URL 以在导航页面上获取查询字符串参数值?

string myString = "Name=" + name.ToString() + "&SiteId=" + x.encrypt(Id.ToString());
Response.Redirect(HttpUtility.UrlEncode(myString));

标签: c#asp.net

解决方案


我犯的第一个错误是结束 URL 的编码,而不是查询字符串参数。

编码:

string myString = "Name=" + HttpUtility.HtmlEncode(name.ToString()) + "&SiteId=" + HttpUtility.HtmlEncode(Id.ToString());
string Final_Url=HttpUtility.UrlEncode(myString);

解码:

QName = HttpUtility.ParseQueryString(HttpUtility.UrlDecode(Request.RawUrl.ToString()).Split(new Char[] { '?' })[1])["Name"];
QSiteId= HttpUtility.ParseQueryString(HttpUtility.UrlDecode(Request.RawUrl.ToString()).Split(new Char[] { '?' })[1])["SiteId"];

感谢@PanagiotisKanavos 给了我正确的方向。


推荐阅读