URL ENCODER & DECODER
Convert text to and from percent-encoded (URL-encoded) form. Everything runs in your browser — nothing you paste is sent to a server.
Component encodes every reserved character ( : / ? # & = ) so the text is safe inside one query value.
Component or full URL?
Encodes everything that is not a letter, digit or - _ . ! ~ * ' ( ),
including : / ? # & =. Use it for a value going into a single
query-string parameter, e.g. ?q= + Hello%20world%20%26%20welcome.
Leaves the URL structure alone and only encodes characters that are illegal in a
URL, so https://example.com/a b?x=1&y=2 becomes
https://example.com/a%20b?x=1&y=2. Use it when the whole address
needs escaping.
Common characters
| Character | Encoded | Character | Encoded |
|---|---|---|---|
space | %20 | ( | %28 |
! | %21 | ) | %29 |
" | %22 | + | %2B |
# | %23 | , | %2C |
$ | %24 | / | %2F |
% | %25 | : | %3A |
& | %26 | = | %3D |
' | %27 | ? | %3F |
@ | %40 | [ / ] | %5B / %5D |
Frequently asked questions
encodeURIComponent, which encodes reserved characters
(: / ? # & =) so the result is safe as a single query value. Full URL
uses encodeURI, which keeps that structure intact and only encodes
characters that are not allowed in a URL at all.
+ in query strings
(application/x-www-form-urlencoded). Tick the checkbox to encode spaces
that way, or to treat + as a space when decoding. In a plain URL a
space is %20, and a literal + means a plus sign.
% is not followed by two valid hexadecimal digits,
which usually means the string was truncated or was never encoded in the first place.
The tool tells you when that happens instead of returning garbled text.
%XX bytes — for example é is
%C3%A9. Round-tripping through Encode then Decode returns the original text.
encodeURIComponent / decodeURIComponent functions. Nothing
you type is sent anywhere.