加号登录查询字符串

dom*_*lao 58 javascript c# asp.net

我有一个使用C#和asp.net创建的webapp.我在查询字符串中放置了一个带有加号(+)的参数值.但加号消失了.

如何在查询字符串中包含加号(+)而不会消失?

请指教.

谢谢.

编辑:使用UrlEncode添加代码

string str = Server.UrlEncode(Requery.QueryString["new"]);
Run Code Online (Sandbox Code Playgroud)

Sus*_*Pal 108

+sign在查询字符串中具有语义含义.它用于表示空间.在查询字符串中具有语义重要性的另一个字符&用于分隔var=value查询字符串中的各种对.

大多数服务器端脚本在使用它们之前会对查询参数进行解码,以便将其+正确转换为空间.现在,如果要+在查询字符串中显示文字,则需要指定%2B.

+将查询字符串中的符号URL解码为空格.%2B在查询字符串中将URL解码为+符号.

看看之间的区别

http://www.google.com/search?q=foo+bar

http://www.google.com/search?q=foo%2Bbar

在上面的示例中,Google的服务器脚本对查询参数进行URL解码,然后使用它们进行搜索.

URL编码只是%符号后跟特殊字符的十六进制代码.例如,我们知道十六进制代码A是0x41(十进制:65).试试这个:

http://www.google.com/search?q=%41

希望这能使URL编码变得清晰.

因此,如果您希望在+JavaScript获取+其查询参数中的符号的URL时保留该符号,并且服务器端脚本将在对其进行URL解码后处理查询参数,则应对URL中的查询参数进行URL编码在使用发出HTTP get请求之前,以便在请求到达服务器端脚本时将所有+符号转换为%2B.现在,当服务器端脚本URL解码查询字符串时,所有%2B的转换回+符号就是你想要的.

请参阅JavaScript中的编码URL?学习如何使用JavaScript对参数进行URL编码.那里的讨论简短回答:

var encodedURL = "http://example.com/foo.php?var=" + encodeURIComponent(param);
Run Code Online (Sandbox Code Playgroud)

  • 如何在 javascript 中将 + 号替换为 %2B。因为我正在 JavaScript 中创建查询字符串。 (2认同)

Doc*_*ick 5

您应该使用URLEncode查询字符串值,以确保不会丢失任何特殊字符。


Mor*_*son 5

查看HTML URL编码参考

您需要对+号进行编码-其值应为%2B