URL Encode / Decode
Percent-encode or decode URLs and URL components instantly. Pick Component (a query value or path piece) or Full URI (a whole URL). Runs entirely in your browser. Last reviewed 2026-06-19.
How URL (percent) encoding works
A URL may only contain a limited set of characters. Anything outside that set — spaces,
most punctuation, and non-ASCII text — is replaced by % followed by the
character's UTF-8 byte values in hexadecimal. A space becomes %20, an ampersand
%26, and é becomes %C3%A9.
Component vs. full URI
This is the distinction most tools blur. Component mode
(encodeURIComponent) encodes the reserved structural characters too
(: / ? # [ ] @ & = +), so it is correct for a single query-string value or path
segment. Full-URI mode (encodeURI) leaves those structural
characters intact and only fixes spaces and illegal characters, so it is for encoding a whole
URL at once. Using the wrong one is a common source of broken links.
Reserved vs. unreserved characters
Per RFC 3986, the unreserved characters A–Z a–z 0–9 - _ . ~ are
never encoded. Reserved characters have a structural meaning in a URL and are
encoded only when they appear as data rather than as delimiters.
Frequently asked questions
- What is URL encoding?
- URL (percent) encoding replaces characters that are unsafe or reserved in a URL with a "%" followed by their hexadecimal byte value — for example a space becomes %20 and an ampersand becomes %26. It lets arbitrary text travel safely inside a URL.
- Component mode vs full-URI mode — which do I use?
- Use "Component" (encodeURIComponent) when encoding a single piece that goes inside a URL — a query-string value, a path segment or a form field — because it also encodes :/?#[]@&=+ etc. Use "Full URI" (encodeURI) when you have a whole URL and only want to fix spaces and illegal characters while leaving the structural characters intact.
- Does it handle Unicode and emoji?
- Yes. Encoding is done over UTF-8, so accented letters, non-Latin scripts and emoji percent-encode and decode back correctly.
- Is anything sent to a server?
- No. Encoding and decoding run entirely in your browser, so your data stays on your device. The tool also works offline once loaded.