The UrlEncode method can be used to encode the entire URL, including query-string
values. If characters such as blanks and punctuation are passed in an HTTP stream,
they might be misinterpreted at the receiving end. URL encoding converts characters
that are not allowed in a URL into character-entity equivalents; URL decoding
reverses the encoding. For example, when the characters < and > are embedded
in a block of text to be transmitted in a URL, they are encoded as %3c and %3e.
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.
There are actually more differences than just the treatment of spaces, although the
documentation doesn't really make this clear. UrlEncode will encode characters
like "?" and "&" which are ignored by UrlPathEncode. Also
UrlPathEncode doesn't encode anything after the first occurence of "?".
It assumes the rest is the query string, and assumes the query string is already