2015-10-14 2 views
0

В QueryString У меня есть часть, которая выглядит, как этотURL Декодер C# asp.net

...u4w51EEcg8%2bj04e7C.... 

Когда я использую HttpUtility.UrlDecode часть «% 2b», которая представляет собой «+» просто превращается в пустое пространство. Я использую HttpUtility.UrlEncode в первую очередь для кодирования строки.

У кого-нибудь есть ключ к тому, что происходит?

ответ

1

Вы декодируете дважды? Для удобства знак + в URL-адресе декодирует до (пробел, 0x20). Пока %2b должен декодировать до +, декодирование, которое даст вам .

РЕДАКТИРОВАТЬ: Просто посмотрел на свой ответ и да, всегда проверяйте, будут ли ваши функции/свойства геттера автоматически декодироваться для вас. Двойное декодирование обычно не дает желаемого результата и может даже привести к рискам безопасности.

0

Похоже на то, что «Request.QueryString []» декодирует все, что происходит, поэтому произошло то, что я декодировал QueryString 2 раза, что делает «+» пробелом.

Смежные вопросы