Skip to content
URL Encode / Decode

URL Encode / Decode

Encode/decode URLs or components, plus a query-string parameter breakdown table.

Full URL keeps :// ? & = intact
Query parameters3 parameters · values decoded
KeyValueCopy
qhello world
langc
tagdía

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

  1. Choose Encode or Decode with the mode toggle.
  2. 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).
  3. Paste your text, or use the Paste, Sample, and Clear buttons.
  4. Check Form encoding (+ = space) if you are working with form-submitted data.
  5. 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.

Search tools

Search all Textbench tools