URL Encode / Decode
Encode/decode URLs or components, plus a query-string parameter breakdown table.
This free URL encoder and decoder runs entirely in your
browser. Nothing you paste is uploaded anywhere, so it is safe
for links containing tokens, session ids, or tracking
parameters. It handles both directions of percent-encoding,
supports form-style + encoding, and automatically
breaks any URL with a query string into a copyable parameter
table.
How to use
- Choose Encode or Decode with the mode toggle.
-
When encoding, pick a scope: Component
(escapes everything, so use it for a single value) or
Full URL (keeps
://,?,&and=intact, so use it for a whole address). - Paste your text, or use the Paste, Sample, and Clear buttons.
- Check Form encoding (+ = space) if you are working with form-submitted data.
- Copy or download the live output, and grab individual values from the Query parameters table.
Component vs. full-URL encoding
Picking the wrong scope is the classic URL-encoding mistake.
Encode the full URL
https://example.com/search?q=hello world in
Component mode and you get
https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world.
The :// and ? that give the URL its
structure are mangled, and the link no longer works. In
Full URL mode the same input becomes
https://example.com/search?q=hello%20world:
structure preserved, only the unsafe space escaped. Rule of
thumb: use Component for one value you are inserting
into a URL, and Full URL when you already have a
complete address that just needs unsafe characters cleaned up.
Reserved vs. unreserved characters
RFC 3986 splits characters into two camps. Unreserved
characters (letters, digits, -, .,
_ and ~) never need encoding.
Reserved characters such as :, /,
?, #, &,
= and + have special jobs inside a
URL, so they must be percent-encoded (%2F,
%3D, %2B, …) whenever they appear as
literal data. Everything else, including spaces and non-ASCII
text like día, is encoded as the UTF-8 bytes of
the character: d%C3%ADa.
+ versus %20
The +-for-space convention predates modern URL
standards: it comes from
application/x-www-form-urlencoded, the format HTML
forms have used to submit data since the early web. In RFC 3986
URLs, a space is %20 and + is just a
plus sign. That is why this tool treats +
literally by default and only converts it to a space when you
opt in with the form-encoding checkbox. Otherwise, decoding
c++ would silently destroy it.
Query parameter inspector
Whenever the input contains a query string (a full URL or just
a=1&b=2), the tool lists every parameter below
the editor with its decoded value and a one-click copy button.
Repeated keys (like tag=a&tag=b) each get
their own row, which is handy when untangling long analytics or
OAuth redirect URLs.
Notes: decoding fails cleanly on malformed sequences such as a
trailing %E (you get an error, not garbage, and
Swap is disabled until the input is valid). All processing uses
UTF-8, matching what browsers and modern servers expect.
FAQ
More questions? Browse the full FAQ.
Working with encoded data in other formats? Try the Base64 encoder and decoder for binary-safe text encoding, or pull every link out of a page dump with the pattern extractor for URLs, emails, and numbers.