URL Encoder / Decoder

Percent-encode text, decode URLs safely, and convert form data — nothing leaves your browser.

Category: Developer Tools

Input

All processing stays in your browser. Links are never opened, navigated or transmitted, and your input text is never rewritten.

Result

Component mode uses encodeURIComponent/decodeURIComponent; form mode follows WHATWG application/x-www-form-urlencoded (+ ↔ space); Full URL mode keeps scheme, host and structure and validates with the URL parser.

Switching mode, direction or swapping keeps your texts per slot; nothing is lost or changed behind your back. Percent sequences that are not valid UTF-8 or incomplete "%" runs are reported with their exact position — never replaced silently.

About this tool

URL Encoder / Decoder handles three jobs separately: encoding one value inside a link (URL Component), re-encoding the parts of a complete URL without breaking it (Full URL), and form data serialization (Form URL Encoding, spaces as "+").

  • Three separate jobs: URL Component per value, Full URL part-wise without breaking scheme/host/structure, and WHATWG form encoding (+ ↔ space).
  • Component mode is the engine itself: encodeURIComponent / decodeURIComponent — space is %20, never '+'; form mode follows application/x-www-form-urlencoded exactly.
  • Full URL mode keeps existing %HH sequences untouched, validates with the browser URL parser but rebuilds from your original text, and flags decoded %23 structure hazards.
  • Decode failures are reported precisely: malformed '%' at its exact original position, or percent bytes that are not valid UTF-8 at their byte offset — no silent U+FFFD replacement.
  • Swap, copy input, copy result, download result and per-slot text preservation between modes; input above 1 million characters is refused. Nothing is opened, executed or uploaded.

Details worth knowing: URL Component mode treats the whole input as one value, so already-encoded URLs get double-encoded (use Full URL mode if they are already encoded). Full URL mode treats "+" inside a URL as literal data (plus/space conversion belongs to Form mode), and the browser URL parser is used only for validation — the output is built from your original text, so browser-side normalization (such as domain punycode or lowercasing) never leaks into your output. A decoded "%23" inside a query is flagged because it would become a fragment delimiter when the URL is read again. Inputs above 1 million characters are refused.