我正在处理一个页面,其中有一个类似的网址:
/directory/company/manufacturer
使用一些重写规则,这会被重写
使用 /directory/company/dunkin%26donuts/ 进行测试
一些制造商的名称中有一个&符号。所以我想我可以用%26
. 但是,当我调试代码并将鼠标悬停在Request.QueryString
它上面时,它会显示给我{qq=company&manf=dunkin&donuts&cond=}
并Request.QueryString["manf"]
给我“dunkin”
如果我使用%24
($) 而不是 & 符号,悬停在上面Request.QueryString
会给我
{qs=company&manf=dunkin%24donuts&cond=}
并Request.QueryString["manf"]
给我 'dunkin$donuts'
我不明白这里的不同行为。为什么在您实际请求特定密钥之前,似乎与符号的 url 编码值已被解码,但另一个 url 编码字符(如美元符号)仅在您实际请求该特定密钥后才被解码?
这是最近的变化吗?我一直认为Request.QueryString[key]
在没有先解码的情况下返回实际文本。还是与 url 重写有关?