What is URL Encoder Decoder?
URL Encoder Decoder — A URL Encoder/Decoder is a free tool that converts special characters in URLs to percent-encoded format (%XX) and decodes encoded URLs back to readable text.
Loading your tools...
Convert special characters, spaces, Unicode, and reserved symbols to URL-safe percent-encoding (%XX format per RFC 3986) and decode percent-encoded strings back to readable text — essential for building query strings, API parameters, redirect URLs, and UTM campaign links.
URL Encoder Decoder: Paste text to URL-encode it (spaces become %20, & becomes %26), or paste an encoded URL to decode it back to readable form. Essential for constructing query strings and debugging URL parameters.
Loading Tool...
URL Encoder Decoder — A URL Encoder/Decoder is a free tool that converts special characters in URLs to percent-encoded format (%XX) and decodes encoded URLs back to readable text.
Paste plain text, query parameter values, or Unicode characters into the Encode panel to convert them to URL-safe percent-encoded format (%XX hex values).
Paste a percent-encoded URL string into the Decode panel to convert it back to human-readable text with all special characters restored.
Review the output to verify correct encoding — check that spaces become %20, ampersands become %26, and UTF-8 characters produce proper multi-byte sequences.
Copy the encoded or decoded result with one click for use in API requests, query strings, redirect URLs, analytics parameters, or application code.
Encoding query parameter values with special characters before appending them to API endpoints and REST URLs
Decoding percent-encoded redirect URLs from Google Ads, Facebook Ads, email marketing platforms, and analytics tracking links
Debugging URL-encoded payload values in server logs, API request/response bodies, and webhook data
Building UTM campaign tracking URLs with properly encoded utm_source, utm_medium, and utm_campaign parameter values
Encoding file paths, search queries, and user input containing spaces, slashes, and Unicode characters for web applications
URL encoding (formally called percent-encoding) is defined in RFC 3986 as the standard method for representing special characters in Uniform Resource Identifiers (URIs). Every character that is not an unreserved character (A-Z, a-z, 0-9, hyphen, underscore, period, tilde) must be encoded as a percent sign followed by two hexadecimal digits representing the character's byte value. For example, a space becomes %20, an ampersand becomes %26, an equals sign becomes %3D. UTF-8 Unicode characters encode as multi-byte sequences — a checkmark (✓) becomes %E2%9C%93. This ensures URLs remain valid across all browsers, servers, and network infrastructure without ambiguity.
| Char | Encoded | When it must be encoded |
|---|---|---|
| Space | %20 or + | Always (+ only in query string) |
! | %21 | In path / fragment |
" | %22 | Always |
# | %23 | In values (it's the fragment delimiter) |
$ | %24 | In query parameter values |
& | %26 | In values (it's the parameter delimiter) |
' | %27 | Always |
+ | %2B | In query (+ means space there) |
/ | %2F | In values (it's the path delimiter) |
: | %3A | In values (it's scheme delimiter) |
; | %3B | In path / query values |
= | %3D | In values (it's the key/value delimiter) |
? | %3F | In values (it's the query delimiter) |
@ | %40 | In user info / values |
% | %25 | Always (it's the encoding prefix!) |
JavaScript provides two URL encoding functions with crucial differences:
encodeURI() — encodes characters that aren't part of valid URL syntax. Does not encode structural characters: : / ? # [ ] @ ! $ & ' ( ) * + , ; =. Use to encode a complete URL where structure should be preserved.encodeURIComponent() — encodes ALL characters except unreserved. Encodes : / ? # @ etc. Use to encode individual values (query parameters, path segments).The rule: always use encodeURIComponent() for individual values. Use encodeURI() only on complete URLs you want to mostly preserve. The big mistake: calling encodeURI() on a parameter value preserves & and =, breaking the URL structure if the value contains those chars.
Both + and %20 represent space in URLs, but they're context-dependent:
application/x-www-form-urlencoded bodies and query strings. In the path, + is a literal plus character.%20; the older escape() used %20; the legacy encodeURIComponent() + form encoding might use either.Safest: always use %20. Reserve + for form-data contexts where the server explicitly decodes it as space.
A common bug: encoding an already-encoded URL. %20 (a space) becomes %2520 (literally "%20"), which then decodes to %20, not a space. If you see %25 followed by another hex byte in your output (or %2520, %2526), the data was double-encoded somewhere in the pipeline. Fix: trace the encoding chain. Common culprits: server-side framework auto-encoded a value that was already encoded; URL was concatenated with already-encoded parameter.
utm_campaignredirect_uri parameter must be percent-encoded?subject=Hello%20Worldapplication/x-www-form-urlencoded uses same encoding?q=hello%20world works universallyA frequent mistake is double-encoding values. If you see `%2520`, the value was likely encoded twice. Decode once, verify the original string, then re-encode only where needed.
Marketers and SEO teams often use URL encoding for campaign parameters and redirect chains. This tool helps verify UTM values and destination links before publishing.
Convert plain text to percent-encoding and decode it back instantly.