Почему в ASP.NET используются UrlEncode () И UrlPathEncode ()?

В одном из недавних проектов я имел удовольствие устранить ошибку, из-за которой изображения не загружались, когда в имени файла были пробелы.Я подумал: «Какая простая проблема, я UrlEncode () это!» Но НЕТ! Простое использование UrlEncode () не решило проблему.

Новая проблема заключалась в том, что метод HttpUtilities.UrlEncode () переключил пробелы () на плюсы ( + ) вместо из % 20 , как хотел браузер. Таким образом, file + image + name.jpg вернет значение not-found, а file% 20image% 20name.jpg было найдено правильно.

К счастью, коллега указал мне на HttpUtilities.UrlPathEncode () , который использует % 20 для пробелов вместо + .

ПОЧЕМУ существует два способа обработки URL-кодирования? ПОЧЕМУ существуют две команды, которые ведут себя так по-разному?

7
задан quakkels 3 November 2011 в 15:56
поделиться