Difference between Url Encode and HTML encode

urlEncode replaces special characters with characters that can be understood by web browsers/web servers for the purpose of addressing... hence URL. For instance, spaces are replaced with %20, ' = %27 etc...

See these references:

  • http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
  • http://www.degraeve.com/reference/urlencoding.php

HtmlEncode replaces special characters with character strings that are recognised by the HTML engine itself to render the content of the page - things like & become &amp; or < = &lt;, > = &gt; this prevents the HTML engine from interpreting these characters as parts of the HTML markup and therefore render them as if they were strings.

See this reference:

  • http://msdn.microsoft.com/en-us/library/ms525347.aspx

HTML Encoding escapes special characters in strings used in HTML documents to prevent confusion with HTML elements like changing

"<hello>world</hello>" 

to

"&lt;hello&gt;world&lt;/hello&gt;"

URL Encoding does a similar thing for string values in a URL like changing

"hello+world = hello world"

to

"hello%2Bworld+%3D+hello+world"