В одном из недавних проектов я имел удовольствие устранить ошибку, из-за которой изображения не загружались, когда в имени файла были пробелы.Я подумал: «Какая простая проблема, я UrlEncode ()
это!» Но НЕТ! Простое использование UrlEncode ()
не решило проблему.
Новая проблема заключалась в том, что метод HttpUtilities.UrlEncode ()
переключил пробелы () на плюсы (
+
) вместо из % 20
, как хотел браузер. Таким образом, file + image + name.jpg
вернет значение not-found, а file% 20image% 20name.jpg
было найдено правильно.
К счастью, коллега указал мне на HttpUtilities.UrlPathEncode ()
, который использует % 20
для пробелов вместо +
.
ПОЧЕМУ существует два способа обработки URL-кодирования? ПОЧЕМУ существуют две команды, которые ведут себя так по-разному?