https%3A%2F%2Fexample.com%2Fpath%3Fq%3Danvil%26page%3D2%23section
About URL Encoder / Decoder — Online Percent-Encoding
URLs can only contain a limited set of characters, so spaces, accents, and symbols like &, =, ?, and / must be "percent-encoded" (e.g. a space becomes %20). This is essential when building query strings, passing values in links, or constructing redirect URLs.
There are two levels of escaping. Whole-URL encoding (encodeURI) leaves the structural characters `: / ? & =` intact so a complete address stays usable, while component encoding (encodeURIComponent) escapes those too — which is exactly what you want for a single query value, an OAuth callback parameter, or a redirect target tucked inside another URL. This tool covers both, so you can encode a full link or just one component.
This free URL encoder and decoder converts text to and from percent-encoding, with full Unicode support, and runs entirely in your browser. Nothing you enter is uploaded.
Features
- Encode text for safe use in URLs and query strings
- Decode percent-encoded strings back to readable text
- Full UTF-8 support — accents, emoji, and non-Latin scripts
- Clear errors on malformed sequences; fully offline
How to use
- Paste your text or an encoded URL into the input pane.
- Choose Encode to percent-encode, or Decode for the reverse.
- Copy the result from the output pane.
Frequently asked questions
What is the difference between encodeURI and encodeURIComponent?
Component encoding escapes everything that is not a safe character — including & = ? / — so it is right for a single query value. Whole-URL encoding leaves the structural characters intact so a full URL stays usable.
Why do spaces sometimes become + instead of %20?
In the query string of HTML form submissions, spaces are traditionally encoded as "+". Elsewhere in a URL, a space is %20. This tool uses %20; both decode back to a space.
Is my input sent anywhere?
No. Encoding and decoding use the browser's built-in URL APIs and run entirely on your device.
Related tools
Everything runs locally in your browser — your input is never uploaded.