c# - 如何对 QueryString 中包含特殊字符的 Url 进行编码和解码?
问题描述
我正在使用查询字符串中的 URL 传递多个参数。参数值包含特殊字符,如 +,&, ,= 等。
我应该如何编码/解码 URL 以在导航页面上获取查询字符串参数值?
string myString = "Name=" + name.ToString() + "&SiteId=" + x.encrypt(Id.ToString());
Response.Redirect(HttpUtility.UrlEncode(myString));
解决方案
我犯的第一个错误是结束 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 给了我正确的方向。