Querystring不起作用,与符号转换为%20
本文关键字:转换 符号 不起作用 Querystring | 更新日期: 2023-09-27 18:23:55
我在C#中遇到以下问题,当我从这样的电子邮件中用查询字符串传递值时:
http://www.website.com?firstname=Joe&lastname=平均
这些值在网站上显示如下:
http://www.website.com?firstname%3d%24Joe%24%26lastname%3d%24Average
所以基本上URL是被编码的,但有些部分不应该被编码。我试过&
而不是&
,但也没有运气。
传递到URL/从URL传递的任何值都应该是URL编码/解码的。另一方面,当在页面上显示文本(HTML)时,您应该使用HtmlEncode
。
您可以在命名空间System.Web
:中找到方法
HttpUtility.UrlEncode
HttpUtility.UrlDecode
HttpUtility.UrlHtmlEncode
等等。
希望能有所帮助。
您正在编码整个查询字符串,而不仅仅是它们的值。你应该做一些类似的事情
var values = new Dictionary<string, string>();
values.Add("firstname", "Joe");
values.Add("lastname", "Average");
var querystring = String.Join("&", values.Select(pair =>
pair.Key + "=" + HttpUtility.UrlEncode(pair.Value)).ToArray());