In a recent project, I had the pleasure of troubleshooting a bug that involved images not loading when spaces were in the filename. I thought \"What a simple issue, I\'ll
UrlEncode is useful for use with a QueryString as browsers tend to use a +
here in place of a space when submitting forms with the GET
method.
UrlPathEncode simply replaces all characters that cannot be used within a URL, such as <
, >
and .
Both MSDN links include this quote:
You can encode a URL using with the UrlEncode method or the UrlPathEncode method. However, the methods return different results. The UrlEncode method converts each space character to a plus character (+). The UrlPathEncode method converts each space character into the string "%20", which represents a space in hexadecimal notation. Use the UrlPathEncode method when you encode the path portion of a URL in order to guarantee a consistent decoded URL, regardless of which platform or browser performs the decoding.
So in a URL you have the path and then a ? and then the parameters (i.e. http://some_path/page.aspx?parameters). URL paths encode spaces differently then the url parameters, that's why there is the two versions. For a long time spaces were not valid in a URL, but were in in the parameters.
In other words the formatting urls has changed over time. For a long time only ANSI chars could be in a URL too.