【发布时间】:2011-05-14 00:50:36
【问题描述】:
例子:
http://foo.com/generatepdf.aspx?u=http://foo.com/somepage.aspx?color=blue&size=15
我添加了 iis 标签是因为我猜它还取决于您使用的服务器技术?
【问题讨论】:
例子:
http://foo.com/generatepdf.aspx?u=http://foo.com/somepage.aspx?color=blue&size=15
我添加了 iis 标签是因为我猜它还取决于您使用的服务器技术?
【问题讨论】:
您可能希望对查询字符串中的 url 进行 UrlEncode。
【讨论】:
+ 和空间无法区分的问题。
不,但您可以对 url 进行编码,然后再对其进行解码。
【讨论】:
服务器技术不应该有所作为。
当您将值传递给查询字符串时,您需要url encode 名称/值对。如果您想传入一个包含特殊字符(例如问号 (?))的值,您只需将该字符编码为 %3F。如果您随后需要将另一个查询字符串递归地传递给编码的 url,则需要对 url 进行双/三/等编码,从而生成原始 ?变成%253F、%25253F等
【讨论】:
是的,据我所知,根据RFC 3986: Uniform Resource Identifier (URI): Generic Syntax(从 2005 年开始):
这是the query string 的 BNF:
query = *( pchar / "/" / "?" )
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
规范说:
(但我想您的服务器框架可能会也可能不会完全遵循规范。)
【讨论】:
如http://en.wikipedia.org/wiki/Query_string报道的那样
W3C 建议所有 Web 服务器都支持分号分隔符 除了与号分隔符(link reported on that wiki page) 以允许 HTML 中 URL 中的 application/x-www-form-urlencoded 查询字符串 文档,而无需实体转义 & 符号。
所以,我想这个问题的答案是肯定的,你必须换成“;”分号“&”符号通常用于 key=value 分隔符。
【讨论】: