Encode and decode URL components and query strings
Encodes all characters except: A-Z a-z 0-9 - _ . ! ~ * ' ( )
Encodes characters except those that have special meaning in URIs: ; , / ? : @ & = + $ #
Like URI Component but replaces spaces with + instead of %20