URL Encoder/Decoder

Percent-encode text for URLs or decode %-escaped strings back to plain text. Component or full-URL mode, plus-as-space handling. Free, instant, in your browser.

How URL encoding works

URLs can only carry a limited set of characters, so everything else is percent-encoded: each byte becomes % followed by two hex digits, with multi-byte UTF-8 characters producing several escapes. Component mode escapes everything reserved (right for query-string values); full-URL mode keeps :/?&=# intact so an entire address stays clickable.

encodeURIComponent(s) — escapes all but A–Z a–z 0–9 - _ . ! ~ * ' ( )

Frequently asked questions

encodeURIComponent vs encodeURI — which do I need?

encodeURIComponent (Component mode) escapes &, =, ? and / too, so use it for individual query-string values. encodeURI (Full URL mode) preserves those separators, so use it only on a complete URL. Encoding a value with the wrong one is the classic broken-link bug. Everything runs locally in your browser.

Why does + sometimes mean a space?

In the application/x-www-form-urlencoded format used by HTML forms, spaces become + signs. Everywhere else in a URL a space is %20. Turn on “Treat + as space” when decoding form data or query strings that use plus signs.

What is double-encoding and how do I spot it?

Encoding already-encoded text: %20 becomes %2520 because the % itself gets escaped. If a decoded result still contains % sequences, decode it again — seeing %25 is the tell-tale sign.

Last updated: 7 July 2026

More tools

Runs entirely in your browser — nothing you enter is uploaded. DevMint · MintKit