⚡ Curated dev resources & dealsSponsored
DevToolBayFree Developer Tools

URL Encoder / Decoder

Percent-encode or decode URLs and query components instantly. Component or full-URL mode, live size stats, strict position-accurate error reporting — all offline in your browser.

Mode
Action

Component vs full URL

“Component” percent-encodes everything except A–Z a–z 0–9 - _ . ! ~ * ' ( ) — correct for individual values such as q=hello world. “Full URL” keeps structural characters (/ ? # & = : @ , ;) intact so a whole URL remains navigable. Decoding tries decodeURIComponent first, then falls back to lenient decodeURI; a malformed % sequence is reported with its exact position.

How to use URL Encoder / Decoder

Paste text or a full URL and choose the mode deliberately: encode-component escapes everything unsafe for a single query value — slashes, question marks and ampersands included — while encode-full preserves URL structure so separators survive. Decoding is live, and you can cycle it repeatedly to unwrap multi-encoded parameters.

The %20 versus + distinction lives here: percent-encoding is the standard, plus signs belong to form-encoding history. Round-tripping into garbage usually means the string was encoded twice, or a component was encoded as if it were a full URL — the tool makes both failure patterns obvious.

Frequently asked questions

Which characters need percent-encoding?

Anything outside the unreserved set: spaces become %20, slashes inside values become %2F, and plus signs in query values become %2B. The tool shows the exact mapping per character.

What is the difference between encodeURI and encodeURIComponent?

encodeURI keeps URL structure characters like / ? & while encodeURIComponent escapes them too. This tool offers both behaviors because encoding a full URL differs from encoding a parameter value.

Why does my decoded string look broken?

The text may have been encoded twice, or contains raw bytes in a non-UTF-8 codepage. Decode to UTF-8 first and inspect the byte sequence to find the step that broke it.

Can I put a whole URL inside a query parameter?

Yes — use strict component mode, which escapes the protocol slashes so the address survives inside another query string, exactly like encodeURIComponent does in code.

Related tools