encodeURIComponent
The encodeURIComponent()
function encodes a URI by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two surrogate characters). Compared to encodeURI()
, this function encodes more characters, including those that are part of the URI syntax.
Syntax
encodeURIComponent(uriComponent)
Parameters
uriComponent
- : A string to be encoded as a URI component (a path, query string, fragment, etc.). Other values are converted to strings.
Return value
A new string representing the provided uriComponent
encoded as a URI component.
Exceptions
URIError
- : Thrown if
uriComponent
contains a lone surrogate.
- : Thrown if
Description
encodeURIComponent()
is a function property of the global object.
encodeURIComponent()
uses the same encoding algorithm as described in encodeURI()
. It escapes all characters except:
A–Z a–z 0–9 - _ . ! ~ * ' ( )
Compared to encodeURI()
, encodeURIComponent()
escapes a larger set of characters. Use encodeURIComponent()
on user-entered fields from forms POST
'd to the server — this will encode &
symbols that may inadvertently be generated during data entry for special HTML entities or other characters that require encoding/decoding. For example, if a user writes Jack & Jill
, without encodeURIComponent()
, the ampersand could be interpreted on the server as the start of a new field and jeopardize the integrity of the data.
For application/x-www-form-urlencoded
, spaces are to be replaced by +
, so one may wish to follow a encodeURIComponent()
replacement with an additional replacement of %20
with +
.