URL Encoder / Decoder

Dual-column URL encoder/decoder with line-by-line and recursive decoding plus diagnostics for spotless tracking links.

Input

Spaces, emojis, and reserved characters are supported. We'll keep encoded and decoded views in sync.

Quick samples

Keeps newline-delimited entries (logs, spreadsheets) isolated while decoding.

Unwraps up to 10 layers of percent-encoding, perfect for `%252F` chains.

Use this free URL Encoder / Decoder to encode or decode urls easily.

About the URL Encoder / Decoder

Modern marketing platforms, APIs, and CMS templates expect properly percent-encoded URLs. This tool converts unsafe characters (spaces, emoji, accented letters, #, &, +) into RFC 3986 compliant sequences so your tracking links, webhook payloads, and redirect rules never break. When you receive a long, encoded string from a browser or log file, the decoder reverses it so humans can read it again.

How the URL encoder / decoder works

Encoding calls encodeURIComponent, then percent-encodes the five characters it deliberately leaves alone — ! ' ( ) * — so only the RFC 3986 unreserved set (A–Z, a–z, 0–9, - _ . ~) survives. Non-ASCII becomes UTF-8 bytes: é turns into %C3%A9. Line endings are normalized to LF first. Decoding converts + into %20 (the form-encoding convention) before calling decodeURIComponent; a malformed sequence such as %ZZ raises an explicit error instead of guessing. Recursive mode peels up to 10 layers (%2520 → %20 → space) and stops as soon as a pass changes nothing. Everything runs in your browser.

Why Developers and SEOs Use It

Line-by-line decoding keeps newline-separated datasets (logs, CRM exports, spreadsheets) intact while cleaning each entry.
Recursive decoding unwraps up to 10 layers of percent-encoding, preventing `%2520` or `%252F` leftovers without risking infinite loops.
Dual outputs stay in sync with annotated conversion notes, and everything runs locally for zero data exposure.

How to Use the URL Encoder / Decoder

1

Paste the full URL, parameter, or snippet you need to sanitize. Example: `https://domain.com/?city=São Paulo` or `%252Fapi%252Fcallback`.

2

Choose Encode to percent-encode readable text or Decode to turn `%20`, `%2B`, `%E2%9C%85`, etc. back into plain copy.

3

Optional: enable 'Decode each line separately' for log exports and 'Decode recursively' to peel stacked `%252F` → `%2F` → `/` sequences (decode mode only).

4

Click Run Tool to generate synced encoded/decoded outputs plus diagnostics, then copy whichever column you need for redirects, automation, or QA.

Common Mistakes to Avoid

Encoding an entire link multiple times. Double encoding turns `%20` into `%2520`, so only run the tool once per string.
Forgetting to encode reserved characters inside query values (for example, using `&` inside a `utm_content` field). Encode only the value, not the separators, to preserve structure.
Pasting domain age or WHOIS data expecting this tool to analyze it. The encoder only transforms text; it does not fetch metadata or authority metrics.

See also

  • UTM BuilderOnce your values are safely encoded, assemble them into a tracking URL with correctly escaped utm_source, utm_medium and utm_campaign parameters.
  • Base64 Encoder / DecoderUse it when a token or payload is Base64 rather than percent-encoded — the two often appear stacked inside the same callback URL.

FAQ

What characters need URL encoding?

Spaces, quotes, angle brackets, emoji, and reserved characters like #, &, +, and = should be encoded when they appear inside query values or paths. Encoding prevents browsers from misreading the parameter order.

Can I decode long tracking links from analytics logs?

Yes. Paste the full encoded URL and choose Decode to reveal the original campaign names, audience tags, or search queries.

Does the tool change domain age or SEO data?

No. It only converts characters. If you need domain-age insights, use a dedicated checker—this encoder is purely for formatting URLs.

Is there a size limit?

The encoder runs client-side and can handle very large strings. Performance only depends on your browser, so feel free to process bulk query strings or webhook payloads.