Percent-encoding - MDN Web Docs Glossary: Definitions of Web-related terms | MDN (original) (raw)
Percent-encoding is a mechanism to encode 8-bit characters that have specific meaning in the context of URLs. It is sometimes called URL encoding. The encoding consists of substitution: A '%' followed by the hexadecimal representation of the ASCII value of the replace character.
Special characters needing encoding are: ':'
, '/'
, '?'
, '#'
, '['
, ']'
, '@'
, '!'
, '$'
, '&'
, "'"
, '('
, ')'
, '*'
, '+'
, ','
, ';'
, '='
, as well as '%'
itself. Other characters don't need to be encoded, though they could.
Character | Encoding |
---|---|
':' | %3A |
'/' | %2F |
'?' | %3F |
'#' | %23 |
'[' | %5B |
']' | %5D |
'@' | %40 |
'!' | %21 |
'$' | %24 |
'&' | %26 |
"'" | %27 |
'(' | %28 |
')' | %29 |
'*' | %2A |
'+' | %2B |
',' | %2C |
';' | %3B |
'=' | %3D |
'%' | %25 |
' ' | %20 or + |
Depending on the context, the character ' '
is translated to a '+'
(like in the percent-encoding version used in an application/x-www-form-urlencoded
message), or in '%20'
like on URLs.
See also
- Definition of percent-encoding in Wikipedia.
- RFC 3986, section 2.1, where this encoding is defined.
- encodeURI() and encodeURIComponent() — functions to percent-encode URLs