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是被编码的,但有些部分不应该被编码。我试过&而不是&,但也没有运气。

Querystring不起作用,与符号转换为%20

传递到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());