我一直听说W3C建议使用“;”而不是“&”作为查询字符串分隔符。
我们建议使用HTTP服务器实现者,特别是CGI 实现者支持使用“;”取代“&”保存作者 逃避“&”的麻烦这种方式的人物。
有人可以解释为什么“;”建议而不是“&”?
另外,我尝试使用";"
代替"&"
。 (例如:.com?str1=val1;str2=val2
)。阅读为Request.QueryString["str1"]
时,我会收到“val1;str2=val2
”。因此,如果建议使用";"
,我们如何阅读查询字符串?
答案 0 :(得分:2)
正如链接文档所述,建议;
优先于&
,因为
使用“&”用于分隔表单字段的字符与其在SGML属性值中的使用进行交互,以分隔字符实体引用。
例如,假设您希望自己的网址为...?q1=v1&q2=v2
&
那里没有错。但是,如果要将该查询放入HTML属性<a href="...?q1=v1&q2=v2">
,则中断,因为在HTML属性中,&
表示字符实体的开头。您必须将&
作为&
转义,并<a href="...?q1=v1&q2=v2">
,并且如果您不需要,则会更容易。
;
根本不会像这样重载;你可以把一个放在HTML属性中而不用担心它。因此,如果服务器将;
识别为查询参数分隔符,则会更加简单。
然而,根据事物的外观(基于您的实验),ASP.Net 不会识别它。怎么去?我不确定你能不能。