About URL Encoder / Decoder
URL Encoder converts characters that have special meaning in a URL into their percent-encoded form (`%20` for space, `%3F` for `?`, `%26` for `&`, and so on) — and runs the inverse, decoding `%xx` sequences back to their original characters. Pick *encode component* to escape every reserved character (the right choice for a single query-parameter value), or *encode URI* to leave structural characters like `:`, `/`, `?`, `&`, `=` alone (the right choice for a whole URL).
Reach for it whenever you are building or inspecting a URL by hand: pasting a query string from a log entry to read the search term, debugging a redirect that double-encoded a value, building a `mailto:` or share link with a multi-line body, or constructing an OAuth authorize URL where the `redirect_uri` parameter is itself a URL. URL encoding is not the same as Base64 — Base64 makes binary safe, URL encoding makes special URL characters safe. Both are reversible with no key.
Examples
hello world & friends?hello%20world%20%26%20friends%3FEncode component mode — escapes spaces, `&`, and `?`. Encode URI mode would leave `?` alone since it is a structural character.
Frequently asked questions
What is the difference between encodeURI and encodeURIComponent?
`encodeURI` is for full URLs and leaves the URL's structural characters (`/`, `?`, `:`, `&`, `=`, `#`) intact. `encodeURIComponent` is for a single piece of data going into a URL — like one query-parameter value — and escapes every reserved character. The wrong one will either break the URL or fail to escape user input.
How is this different from Base64?
Different problem. Base64 turns arbitrary bytes into ASCII so they survive text-only channels. URL encoding turns characters that have special meaning in URLs into a form a parser will not misinterpret. They are sometimes used together — Base64-encode binary, then URL-encode the Base64 output — but they solve different problems.
Why do I see `+` for spaces sometimes and `%20` other times?
`%20` is the URL-encoding standard for space. `+` for space is a leftover convention from the original `application/x-www-form-urlencoded` form-submission encoding; some servers still accept it in query strings. This tool emits `%20` — the safe choice everywhere.
Should I encode a value before adding it to a URL?
Always, if the value comes from user input or could contain `&`, `=`, `?`, `#`, `/`, `+`, `%`, or whitespace. Otherwise the parser will read your data as URL structure and the request will be wrong.
