This URL encoder percent-encodes text for use in links and query strings — and decodes percent-encoded URLs back into readable text.

%XX: Every Character Gets a Passport

URLs may only contain a small safe alphabet; everything else travels as % plus two hex digits of its UTF-8 bytes — space is %20 (or + in form data), & is %26, é is %C3%A9. Base64 solves a different transport problem on our Base64 Converter. Part of our Other Calculators collection.

Worked Example (Verified)

  • “rock & roll? 100%” encoded as a component → rock%20%26%20roll%3F%20100%25: the & becomes %26 (it would otherwise split parameters), ? becomes %3F, % escapes itself as %25
  • Component vs full-URL mode: component encodes the structural characters too (&, =, ?), because a value must not smuggle in new parameters; full-URL mode preserves them as structure
  • The + trap: in query strings from HTML forms, + means space — decoders here treat it so; in URL paths, + is a literal plus. Context decides
  • Double-encoding (%2520) is the classic bug: the % got encoded again — decode twice or fix the source

Where Encoding Matters

  • Search boxes and filters: user text inside ?q= must be component-encoded, always.
  • International URLs: browsers display Unicode but transmit percent-encoded UTF-8 under the hood.
  • Reserved characters: : / ? # [ ] @ ! $ & ‘ ( ) * + , ; = each carry structural meaning somewhere in a URL.
  • Never hand-roll encoding in production code — use your platform’s encoder; this tool is for inspection, debugging and one-offs.

Related Tools

Frequently Asked Questions

How do I URL-encode text?

Replace every unsafe character with % and its two-digit hex byte value: space → %20, & → %26, ? → %3F. Choose component mode for values inside a query string (strictest) and full-URL mode to clean up a whole address while keeping its structure. This tool applies either correctly.

What is the difference between encodeURI and encodeURIComponent?

encodeURIComponent encodes everything except A–Z a–z 0–9 − _ . ! ~ * ‘ ( ), including / ? & = — right for a single value. encodeURI leaves URL structure intact for whole addresses. Using the wrong one is a top source of broken links and double-encoding bugs.

Is a space %20 or +?

Both, by context: %20 everywhere; + only inside application/x-www-form-urlencoded data (HTML form submissions and most query strings). This decoder treats + as space in decode mode, matching how query strings are actually produced.

Why did my URL become %2520?

Double-encoding: an already-encoded %20 had its % encoded again into %25, yielding %2520. Something in the chain encoded twice. Decode once to recover %20, or fix the source to encode raw text exactly once.

Which characters never need encoding?

Unreserved characters: letters, digits, and − _ . ~ travel anywhere in a URL. Reserved characters ( : / ? # & = and friends) are safe only in their structural positions — as data, they must be encoded.

Is this URL encoder free?

Yes — free, instant, runs entirely in your browser, no sign-up.