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