Request.Querystring автоматически URL-адрес декодирует строку?

Я работаю со страницей, где у меня есть URL-адрес, как:
/ Каталог / Компания / производитель

Используя некоторые правила перезаписи, это переписывается

тестирование с помощью / 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 $

Я не понимаю, другое поведение здесь. Почему кажется, что значение для амперсанда, закодированное в URL-адресе, декодируется до того, как вы фактически запросите конкретный ключ, а другой кодированный в URL-адресе символ, такой как знак доллара, декодируется только после того, как вы действительно запросите этот конкретный ключ?

Это недавнее изменение? Я всегда думал, чтоRequest.QueryString[key] вернул реальный текст без предварительного декодирования. Или это как-то связано с перезаписью URL?