URL encoder & decoder

Two modes that matter: component encoding (for query values) and full-URI encoding (for whole addresses) — plus decoding, Unicode-safe.

Component mode escapes & = ? / and every reserved character — right for query parameter values. Full-URI mode keeps structure characters (?, &, /) intact — right for a whole address.

How it works

Component mode uses encodeURIComponent: every reserved URL character becomes %XX, which is what a query parameter value needs (a literal & inside a value would otherwise split the parameter). Full-URI mode uses encodeURI, which preserves the structural characters (? & = / #) so an address stays a working address. Decoding uses decodeURIComponent after switching URL-safe characters back.

Frequently asked questions

Why does space become %20 and not +?

%20 is the RFC 3986 standard for paths and query values; the + convention belongs to legacy form encoding. Use %20 unless a legacy system demands +.

Decode failed — why?

A stray % that isn't part of a valid escape sequence. Percent-encoding pairs must be two hex digits.

Written and maintained by Steven Huang · Last reviewed October 29, 2026.