URL Encode and Decode Tool
Use the online tool from above to either encode or decode a string of text. For worldwide interoperability, URIs have to be encoded uniformly. To map the wide range of characters used worldwide into the 60 or so allowed characters in a URI, a two-step process is used:
- Convert the character string into a sequence of bytes using the UTF-8 encoding
- Convert each byte that is not an ASCII letter or digit to %HH, where HH is the hexadecimal value of the byte
For example, the string: François ,would be encoded as: Fran%C3%A7ois
(The "ç" is encoded in UTF-8 as two bytes C3 (hex) and A7 (hex), which are then written as the three characters "%c3" and "%a7" respectively.) This can make a URI rather long (up to 9 ASCII characters for a single Unicode character), but the intention is that browsers only need to display the decoded form, and many protocols can send UTF-8 without the %HH escaping.
When data that has been entered into HTML forms is submitted, the form field names and values are encoded and sent to the server in an
HTTP request message using method GET or POST, or, historically, via email. The encoding used by default is based on a very early version
of the general URI percent-encoding rules, with a number of modifications such as newline normalization and replacing spaces
with "
+
" instead of "
%20
". The MIME type of data encoded this way is
application/x-www-form-urlencoded
,
and it is currently defined (still in a very outdated manner) in the HTML and XForms specifications. In addition, the
CGI specification contains rules for how web servers decode data of this type and make it available to applications.