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.

Related tools

See all developer & data conversions →