URL encode and decode
Make text safe for a URL, or turn percent-encoded text back into words.
Free, no sign-up.
URL encode and decode
What gets encoded
Encoding leaves letters, digits and - _ . ! ~ * ' ( ) as they are and writes everything else as % followed by two hex digits for each byte of its UTF-8 form. A space becomes %20, & becomes %26, / becomes %2F, and é, which is two bytes in UTF-8, becomes %C3%A9. So "a b&c=d" becomes a%20b%26c%3Dd and can sit inside a query string without breaking it.
Forms submitted by a browser write spaces as + instead of %20, which is why decoding here also turns + into a space. In a path, a + is just a plus sign.
The double-encoding trap
If text is encoded twice, the % signs get encoded too: %20 becomes %2520, and the page at the other end sees "%20" instead of a space. When you see %25 followed by two hex digits in a URL, something encoded an already encoded value; decode it once here to see what was meant.
More developer tools
- Base64 encode and decode: Decode Base64 to text, or encode text as standard or URL-safe Base64.
- JSON formatter: Check JSON, see where it breaks, then format it for reading or minify it.
- JWT decoder: Read a JSON Web Token’s header, claims and times without sending it anywhere.
- UUID generator: Random version 4 UUIDs, one or up to fifty at a time.
- SHA-256 hash: The SHA-256 digest of any text as you type, with SHA-1, SHA-384 and SHA-512 beside it.
- Token generator: Secure random strings for keys, secrets and test data.
- All developer tools on one page
Percent-encode text so it can go in a URL query string or path, or decode an encoded URL part to read it. Encoding follows the rules browsers use for a single URL component, and decoding also turns + into spaces, as form submissions do.
How it works
- Paste the text — Plain text to encode, or an encoded part to decode.
- Encode or Decode — Each has its own button.
- Copy the result — Use the Copy button beside it.
Examples
- Encode — café & bar → caf%C3%A9%20%26%20bar
- Decode — hello+world%21 → hello world!
FAQ
- Should I encode a whole URL? — No. Encode each part you insert, such as a search term, so its / ? & and = stay part of the text.
- Why does decoding fail? — A % must be followed by two hex digits; a lone % can’t be decoded.
- Is my text stored? — No. It runs in your browser; what you paste is never sent anywhere.
