URL encoding is a mechanism for encoding text within a URL string that makes it possible to unambiguously distinguish the URL from its content. It is similar to the practice of using quoted strings in English to avoid confusing the quoted string from the surrounding explanatory text.
URL Encoding replaces spaces with "+" signs, and reserved ASCII characters with "%" followed by two hexadecimal characters. Unreserved characters are defined in RFC 3986 (January 2005) as:
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789-_.~
! * ' ( ) ; : @ & = + $ , / ? % # [ ]