URL Encoder & Decoder
Paste text to percent-encode, or a percent-encoded string to decode. Direction and encoding mode (component / full URL / query / form / path / OAuth) auto-detect, or force them. Handles reserved characters, UTF-8, nested URLs, and double-encoding (%2520). The Query tab breaks out parameters, Security flags sensitive ones, and Analysis reports the encoding. Runs in your browser; nothing is uploaded.
Auto-runs as you type. Ctrl+Enter to re-run.
How to use the URL Encoder & Decoder
Percent-encode (URL-encode) or decode any text, query string, path segment, redirect URL, OAuth callback, or API parameter value. The tool handles reserved characters, spaces, UTF-8 and Unicode text, nested URLs, and the dreaded double-encoding (%2520) problem. Use encodeURIComponent semantics for parameter values and encodeURI semantics for full URLs. Runs locally; no upload.
What it does
- URL-encodes text using percent-encoding (RFC 3986).
- URL-decodes percent-encoded strings back to readable text.
- Multiple modes: component (encodes
&,=,?,/,#, etc. — for query values), full URL (preserves URI delimiters), plus query, form, path, and OAuth. - Handles UTF-8 and Unicode characters correctly (emoji, accented letters, CJK).
- Detects and unwinds double-encoded values (
%2520→%20→ space). - Works with redirect URLs containing nested URLs as parameters.
When to use it
- Build a redirect URL that contains another URL as a query parameter.
- Debug an OAuth callback that's failing because of unescaped
&or=. - Decode a URL pulled from a server log to read the original values.
- Encode an email address, search term, or JSON payload before placing it in a URL.
- Fix a tracking URL where the
utm_values were double-encoded. - Construct a deep link with special characters in path segments.
How to use it
- Paste your raw text (to encode) or percent-encoded string (to decode).
- Leave Direction and Mode on Auto-detect, or force them (component for a single value, full URL for a whole URL).
- The result appears instantly. Copy it into your app, request, or browser URL bar.
- For parsing the parts of a URL (host, path, query, hash), use the URL Parser & Query Builder.
- For Base64 (not URL) encoding, use the Base64 Encoder & Decoder.
Tips & pitfalls
- Double-encoding:
%2520means a space was encoded once to%20and then encoded again. Decode twice to recover. - Spaces become
%20in paths and+in legacy form-encoded query strings — confirm which your server expects. - Encode the value of a query parameter, not the
&or=that separates them. - Reserved characters (
:/?#[]@!$&'()*+,;=) must be encoded inside parameter values. - Unicode is encoded as UTF-8 bytes — each non-ASCII character becomes several percent escapes.
- Use component mode for individual values; use full-URL mode only on a full URL where you want delimiters preserved.
FAQ
- How do I URL-encode a query string? Encode each value with component mode; assemble them with
&and=separators yourself, or use the URL Parser & Query Builder. - What is the difference between encodeURI and encodeURIComponent?
encodeURIComponentescapes URL delimiters (so you can put a URL inside a parameter);encodeURIpreserves them (used on a full URL). - What does
%2520mean? A double-encoded space — the original space became%20and then%20was encoded again, becoming%2520. - Should spaces become
%20or+?%20in paths and modern URLs;+only in legacyapplication/x-www-form-urlencodedbodies and query strings. - Is my URL uploaded? No. All encoding and decoding run in your browser.
- Can it handle UTF-8 / Unicode? Yes — emoji, accented characters, and Asian scripts are encoded as UTF-8 byte sequences correctly.
Runs locally in your browser. No uploads. No analytics on pasted URLs.