In short: URL encoding (percent-encoding) replaces characters that are unsafe in URLs — spaces, &, ?, non-ASCII letters — with % followed by their UTF-8 byte values, e.g. a space becomes %20.
About URL Encoder & Decoder
URLs can only contain a limited set of ASCII characters. Spaces, accented letters, emoji and characters with special meaning such as &, ? and # must be percent-encoded: each byte becomes % followed by two hex digits. Get it wrong and query parameters split in the wrong place or a link simply breaks.
This tool offers both common modes. Component encoding (like JavaScript’s encodeURIComponent) escapes everything except letters, digits and - _ . ! ~ * ' ( ), which is what you want for a single query value. Full URL mode (like encodeURI) leaves the structural characters alone so an entire address stays usable. Decoding handles UTF-8 sequences and can optionally treat + as a space, as HTML forms do.
How to use URL Encoder & Decoder
- Paste the text or URL into the input box.
- Choose Component to encode a single value, or Full URL to encode a whole address without breaking its structure.
- Press Encode or Decode.
- Copy the result. If decoding fails, the input contains a broken
%sequence and the message explains it.
Examples
café & bar in component mode becomes caf%C3%A9%20%26%20bar, safe to append as ?q=….
Decoding https%3A%2F%2Fexample.com%2Fa%3Fb%3D1 gives https://example.com/a?b=1, revealing where the redirect really goes.
Frequently asked questions
What is the difference between encodeURI and encodeURIComponent?
encodeURI keeps characters that structure a URL (: / ? # & =) so the result is still a working address. encodeURIComponent escapes them too, which is correct for a value that will sit inside a query string.
Why do some URLs use + instead of %20?
HTML forms submitted as application/x-www-form-urlencoded encode spaces as +. In a path, though, + is a literal plus sign. Tick the option only when decoding form-style query strings.
Why does decoding fail with “malformed URI”?
A % must be followed by two hex digits, and multi-byte sequences must form valid UTF-8. A lone % or a truncated sequence causes the error.
Can I split a URL into its parts?
Yes, use the URL Parser to see the protocol, host, path and each query parameter separately.
Updated November 2026 · Free, no signup · How we build and test tools