Правильно URL кодировать символ пробела - PullRequest
11 голосов
/ 30 октября 2009

Я использую HttpUtility.UrlEncode для кодирования любого значения, которое используется в маршруте.

Я уже решил проблему с кодировкой косой черты. Сейчас у меня новая проблема с пробелами. Пробел кодируется как +.

Это работает на интегрированном веб-сервере VS, но у меня есть проблема с ним в IIS7 на Windows Server 2008. Если у меня есть URL http://localhost/Home/About/asdas+sdasd

Я получаю ошибку 404.11 - Запрос содержит двойную escape-последовательность.

Я знаю, что могу просто заменить пробел на "% 20", но я не хочу заботиться о кодировке пропппера самостоятельно. Есть ли готовый для использования UrlEncoder для MVC там?

Ответы [ 3 ]

20 голосов
/ 01 ноября 2009

'' закодировано в% 20 use HttpUtility.UrlPathEncode.

0 голосов
/ 11 февраля 2015
@HttpUtility.UrlPathEncode(path)

UrlPathEncode просто кодирует путь URL, а не кодирует весь URL.

0 голосов
/ 01 ноября 2009

Любая кодировка URL чаще всего предназначена для работы с компонентом пути URL-адреса, причина в том, что разные схемы содержат разные символы в безопасном списке. Найдите в своей библиотеке urlencoder и просто используйте ее в пути и над частью URL.

...