URL encode / decode
EncodingPercent-encode strings or decode them back.
What this tool helps with
Percent-encoding (URL encoding) escapes characters that have special meaning in a URL — spaces, &, ?, #, /, and anything outside the unreserved set — into %XX byte sequences so the value survives being placed in a query string or path. This tool handles both component-level encoding (encodeURIComponent semantics, for a single parameter value) and full-URL decoding, and it is UTF-8 correct so multibyte characters expand to the right percent sequences. It runs locally, so encoding URLs that contain tokens or PII never leaves your machine.
How to use URL encode / decode
- Open the URL encode / decode page and paste, type, or generate the url input you want to work with.
- Pick the options you need so the tool can percent-encode strings or decode them back
- Copy the uri result with one click and use it in your next step — terminal, editor, ticket, or anywhere else you need it.
Common uses
- Reach for URL encode / decode when you need to percent-encode strings or decode them back during debugging, code review, or content preparation.
- Skip installing a desktop url app — open this encoding utility on a shared machine, an iPad, or a colleague's laptop and it just works.
- Bookmark or share the page when you and your team keep coming back to the same url, uri, percent, and encode workflow.
FAQ
What's the difference between encoding a component and a whole URL?
Encoding a component escapes everything that isn't unreserved, including / : ? & =, so the value is safe as a single query parameter. Whole-URL encoding leaves the structural characters intact so the URL still works. Use component encoding for values you put into a parameter.
Why does a space sometimes become + and sometimes %20?
In the query string of application/x-www-form-urlencoded data a space is +. In a path segment it must be %20. They are not interchangeable everywhere, which is a common source of bugs.
Is double-encoding a real problem?
Yes. Encoding an already-encoded string turns %20 into %2520. If your value looks like it has stray %25 sequences, something encoded it twice. Decode until it stabilizes.