URL Encoder Decoder

100% private

Free online URL encoder decoder — encode special characters to percent-encoded format and decode URLs instantly. Browser-based, no data sent to servers.

The free online URL encoder converts any text, query parameter, or full URL into a safely percent-encoded string. Characters not allowed in URLs — spaces, ampersands, brackets, and Unicode — are replaced with their %XX hexadecimal equivalents. The tool supports both encodeURI mode (for full URLs, preserving /, :, and ?) and encodeURIComponent mode (for individual query parameter values, encoding all reserved characters). Use this online URL encoder for query strings, redirect parameters, API request building, and SVG data URI encoding.

The online URL decoder reverses the process: paste any percent-encoded string and the tool decodes it to readable text instantly. This is the same functionality developers need when decoding Proofpoint SafeLinks, Microsoft Safelinks, or Mimecast-rewritten email URLs back to their original destinations. It also handles HTML URL decoding, form-encoded + signs (decoded as spaces), and nested encoded values from redirect chains.

Whether you need a JavaScript URL encoder alternative to encodeURIComponent(), a Python URL encoder equivalent to urllib.parse.quote(), or a Java URL encoder replacement for URLEncoder.encode(), this tool lets you encode and decode interactively without writing code. All processing runs locally in your browser — no server, no logs, no rate limits. Your URLs, tokens, and query strings stay entirely on your machine.

How It Works

  1. Paste your text, query parameter value, or full URL into the input field
  2. Select Encode to percent-encode special characters, or Decode to reverse percent-encoding
  3. Choose encoding mode: Full URL mode preserves structural characters; Component mode encodes everything including / and :
  4. Copy the result — all processing happens in your browser with no server calls

Features

  • Encode text or full URLs to percent-encoded format instantly
  • Decode percent-encoded strings and Safelinks / Proofpoint URLs back to readable text
  • Full URL mode (encodeURI) and Component mode (encodeURIComponent)
  • Handles + as space in form-encoded (application/x-www-form-urlencoded) input
  • Encodes SVG markup for use in CSS data URIs
  • Supports Unicode and multi-byte UTF-8 character encoding
  • 100% browser-based — no server, no logs, no rate limits

Examples

Encode query parameter with special characters

Input

hello world & goodbye=world

Output

hello%20world%20%26%20goodbye%3Dworld

Decode a percent-encoded URL

Input

https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world

Output

https://example.com/search?q=hello world

Encode SVG for CSS data URI

Input

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>

Output

%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3C%2Fsvg%3E

Common Use Cases

  • Building API query strings with dynamic user input containing special characters
  • Decoding Proofpoint SafeLinks, Microsoft Safelinks, or Mimecast-rewritten email URLs to their original destinations
  • Encoding SVG markup as a data URI for use in CSS background-image properties without Base64 overhead
  • Debugging redirect chains with nested percent-encoded URL parameters
  • Replacing encodeURIComponent() / urllib.parse.quote() for quick interactive one-off encoding

Developer Tips

  • Use Component mode (encodeURIComponent) for query parameter values — Full URL mode preserves / and ? which will corrupt a value embedded inside a query string
  • A + in a URL query string means a space only in application/x-www-form-urlencoded format; in a URL path, + is a literal plus sign and only %20 means a space
  • To double-encode a URL (embed one encoded URL as a parameter inside another), encode twice — the first pass encodes the URL, the second encodes the % signs to %25
  • SVG in CSS data URIs does not need full Base64 encoding — URL-encoding only <, >, ", and # produces a smaller payload than Base64

Frequently Asked Questions

What is the best URL decoder for developers?
The best URL decoder for developers is one that is fast, runs in the browser without sending data to a server, handles both percent-encoding and form-encoded + signs (decoded as spaces), and supports edge cases like double-encoded values and nested redirect chains. This free online URL decoder handles all of these instantly — no signup, no rate limit, and no data transmitted to any server. It also decodes Proofpoint SafeLinks and Microsoft Safelinks directly.
What is URL encoding?
URL encoding (also called percent-encoding) converts characters that are not allowed in URLs into a safe format. Each unsafe character is replaced by a percent sign followed by two hexadecimal digits representing the character's UTF-8 value. For example, a space becomes %20, and an ampersand becomes %26. URL encoding is required when passing special characters in query parameters, redirect URLs, or HTTP headers.
What is the difference between URL encoding and URI component encoding?
URL encoding (encodeURI) is for encoding a complete URL — it preserves characters that have structural meaning in URLs like /, :, @, and ?. URI component encoding (encodeURIComponent) is for encoding individual query parameter values — it also encodes those reserved characters because they must not appear unescaped inside a parameter value. Always use Component mode when encoding a value you will place inside a query string.
Why does a space become %20 in some tools and + in others?
Both are valid in different contexts. %20 is the standard percent-encoded space per RFC 3986. The + sign represents a space in the application/x-www-form-urlencoded format used by HTML forms and some APIs. When decoding form data, + is treated as a space. When decoding a URL path or HTTP header, + is a literal plus sign — only %20 means a space in that context.
How do I decode a Proofpoint SafeLinks or Microsoft Safelinks URL?
Proofpoint SafeLinks and Microsoft Safelinks rewrite URLs in emails by wrapping the original destination in a percent-encoded redirect parameter. To recover the original URL, copy the full rewritten link, paste it into the input field, and click Decode. For Microsoft Safelinks, find the url= query parameter in the decoded output; for Proofpoint, look for the u= parameter. Both services percent-encode the destination URL, so a single decode pass reveals the original link.
How do I encode a URL in JavaScript, Python, or Java?
In JavaScript, use encodeURIComponent(value) for query parameter values or encodeURI(fullUrl) for complete URLs. In Python, use urllib.parse.quote(value) for components or urllib.parse.quote(value, safe=":/?#[]@!$&'()*+,;=") to preserve URL structure. In Java, use URLEncoder.encode(value, StandardCharsets.UTF_8) for form encoding. For quick one-off encoding without writing code, paste the value into this online URL encoder tool instead.
When should I encode a URL?
Encode URLs whenever you are programmatically constructing a URL that includes user input, API responses, or any data containing special characters. Common cases include: building query strings with dynamic values, embedding URLs as parameter values inside other URLs, sending URLs in HTTP headers, constructing redirect targets, and encoding SVG markup for CSS data URIs. Browsers handle encoding automatically only for URLs typed directly into the address bar.