I'm working with a page where I have a url like:
/directory/company/manufacturer
Using some re-write rules this gets re-written
testing with /directory/company/dunkin%26donuts/
Some manufacturers have an ampersand in their name. So I thought I could just replace the ampersand with %26
. However, when I debug the code and hover over Request.QueryString
it shows me {qq=company&manf=dunkin&donuts&cond=}
and Request.QueryString["manf"]
gives me 'dunkin'
If I use %24
($) instead of ampersand, hovering over Request.QueryString
gives me
{qs=company&manf=dunkin%24donuts&cond=}
and Request.QueryString["manf"]
gives me 'dunkin$donuts'
I don't understand the different behavior here. Why does it seem as though the url-encoded value for an ampersand gets decoded before you actually request a specific key, but another url-encoded character, like a dollar sign, only gets decoded after you actually request that specific key?
Is this a recent change? I always thought Request.QueryString[key]
returned the actual text without decoding it first. Or does it have something to do with url re-writes?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…