URL Encoder and Decoder — Percent Encoding Tool

Encode or decode URLs and query strings, with a full breakdown of every URL part.

🔒 Runs in your browser — files never uploaded ⚡ No signup 💯 Free

Percent-encode text for safe use in a URL, or decode an encoded URL back to something readable. Paste a full URL and you also get it broken into protocol, host, path, query parameters and fragment.

How to use URL Encode / Decode

  1. Choose encode or decode.
  2. Paste your URL or text.
  3. Pick the encoding scope — see below for which one you need.
  4. Copy the result, or read the URL breakdown underneath.

Component vs full URI — the choice that matters

This is the distinction that causes most URL bugs.

Component encoding escapes everything with special meaning, including & ? = / #. Use it for a single query value. If a parameter contains an ampersand and you do not encode it, the server reads it as the start of a new parameter and your value is silently truncated.

Full URI encoding leaves the structural characters intact so a complete URL stays functional. Use it when encoding a whole address that already has a valid structure.

Form encoding matches application/x-www-form-urlencoded, where spaces become + rather than %20. Use it for form submissions.

Common encodings

Space is %20, & is %26, ? is %3F, = is %3D, # is %23, / is %2F, and + is %2B. Each byte becomes a percent sign plus two hex digits; non-ASCII characters are encoded as their multi-byte UTF-8 sequence.

Frequently asked questions

When should I use component vs full URI encoding?

Use component encoding for a single query parameter value — it escapes & ? = / which would otherwise break the URL structure. Use full URI encoding when encoding a complete, already-valid URL.

Why is a space sometimes %20 and sometimes +?

%20 is the standard percent encoding. The + form comes from HTML form submission (application/x-www-form-urlencoded). Both are decoded correctly here — pick "Form" mode for the plus variant.

Why does my decode fail?

A percent sign must be followed by exactly two hexadecimal digits. A stray % in the text — common in copied content — makes the whole string invalid.