URL encode / decode
Percent-encode or decode a URL component, including Unicode.
This runs in your browser. Nothing is uploaded.
About URL encode / decode
Encodes or decodes URL components in your browser, including Unicode, without sending the string through an online encoder.
Percent-encoding is the boring part of building a query string and the sharp part of debugging one. A space that should have been %20, a plus that someone treated as a space, a UTF-8 character that got encoded twice — those show up in logs and in support tickets. The websites that 'encode a URL for you' are a strange place to paste a signed URL or a token sitting in a query parameter.
Encode runs encodeURIComponent over the input. Decode runs decodeURIComponent and treats + as a space first, because query strings still do that. The direction is a radio so a string that already contains percent signs is not encoded again unless you ask. If decode hits a broken escape, you get an error instead of a half-garbled string.
This encodes a component, not a whole URL. Running it on https://example.com/a b will encode the colons and slashes too, which is correct for a component and wrong if you meant 'fix the one space in this address'. Split the URL yourself; I will not guess which slashes were structural.
How to use URL encode / decode
- 1Paste the string you want encoded or decoded.
- 2Choose Encode or Decode.
- 3Copy the result. If decode fails, the escape sequence is malformed.
What it won't do
- No punycode, no 'make this URL safe for XML' mode.
- A whole URL pasted into Encode will encode the slashes.
Common questions
Does URL encode use encodeURI or encodeURIComponent?
encodeURIComponent. Reserved characters including &, =, and / are encoded. That is what you want for a query value or a path segment. encodeURI would leave those alone, which is the wrong default when people paste a single value.
Why did decoding my URL turn plus signs into spaces?
Because application/x-www-form-urlencoded has used + for a space since before most of us were writing forms. Decode treats + as %20. If your plus was a literal plus that was never encoded, encode it as %2B on the way in.
Can I encode a full URL without breaking the scheme?
Not as one shot. This page encodes the whole input as one component. To fix a single parameter, encode only that parameter's value and leave the rest of the URL alone.
Related tools
Why this one doesn't upload your file
There is no server to upload to. This page is a static file, and the work happens in your browser using the same graphics and WebAssembly code that renders every other site you visit. Your file is read from disk into memory, processed, and handed back as a download. Once the page has loaded you can disconnect from the network entirely and it keeps working. The longer explanation