加号登录查询字符串
我有一个使用C#创建的web应用程序,asp.net。我在查询字符串中放置了一个带有加号(+)的参数值。但是加号消失了。
如何在查询字符串中包含加号(+)而不会消失?
请指教。
谢谢。
编辑:使用UrlEncode添加代码
string str = Server.UrlEncode(Requery.QueryString["new"]);
我有一个使用C#创建的web应用程序,asp.net。我在查询字符串中放置了一个带有加号(+)的参数值。但是加号消失了。
如何在查询字符串中包含加号(+)而不会消失?
请指教。
谢谢。
编辑:使用UrlEncode添加代码
string str = Server.UrlEncode(Requery.QueryString["new"]);
+
符号在查询字符串中具有语义含义。它用于表示空间。在查询字符串中具有语义重要性的另一个字符是用于分隔查询字符串中的各种对。&
var=value
大多数服务器端脚本会在使用它们之前对查询参数进行解码,以便将 a 正确转换为空格。现在,如果希望文本存在于查询字符串中,则需要改为指定。+
+
%2B
+
查询字符串中的符号被 URL 解码为空格。 中的查询字符串被 URL 解码为 + 号。%2B
查看
http://www.google.com/search?q=foo+bar
和
http://www.google.com/search?q=foo%2Bbar
在上面的示例中,Google的服务器脚本正在对查询参数进行URL解码,然后使用它们进行搜索。
URL 编码只不过是符号,后跟特殊字符的十六进制代码。例如,我们知道 的十六进制代码是 0x41(十进制:65)。试试这个:%
A
http://www.google.com/search?q=%41
希望这能使URL编码清晰。
因此,如果您希望在 JavaScript 获取查询参数中带有符号的 URL 时保留符号,并且服务器端脚本会在 URL 解码后处理查询参数,则应在使用发出 HTTP get 请求之前对 URL 中的查询参数进行 URL 编码,以便在请求到达服务器端脚本时将所有符号转换为 's。现在,当服务器端脚本 URL 对查询字符串进行解码时,所有 's 都会被转换回你想要的符号。+
+
+
%2B
%2B
+
请参阅在 JavaScript 中对 URL 进行编码?,了解如何使用 JavaScript 对参数进行 URL 编码。来自讨论的简短答案:
var encodedURL = "http://example.com/foo.php?var=" + encodeURIComponent(param);
您应该对查询字符串值进行 URL 编码,以确保不会丢失任何特殊字符。