URL Encoder & Decoder
Percent-encode text for safe use in URLs, decode encoded links back into readable form, and break any query string into a readable parameter table.
Query parameters
Paste a full URL above to break its query string into readable parameters.
| Parameter | Decoded value |
|---|---|
| No query parameters detected. | |
About the URL Encoder & Decoder
A URL can only contain a limited set of characters. Everything else — spaces, ampersands, question marks, quotation marks, accented letters, emoji, Chinese characters — has to be percent-encoded: replaced by a % followed by the hexadecimal value of each UTF-8 byte. A space becomes %20, an ampersand becomes %26, and an emoji becomes a run of four escapes.
Get this wrong and things break in ways that are hard to trace. An unencoded ampersand inside a query value silently splits it into two parameters, so a search for “fish & chips” arrives at the server as a search for “fish” plus an empty parameter called “chips”. An unencoded # truncates everything after it, because the browser reads it as the start of a fragment and never sends it. UTM parameters carrying campaign names with spaces routinely arrive mangled for exactly these reasons.
The tool distinguishes between the two encoding functions, which is the detail most people get wrong. encodeURIComponent escapes everything that has a reserved meaning, including &, =, ?, / and #, and is what you want for a single parameter value. encodeURI leaves the structural characters alone and is only appropriate for encoding a whole URL that is already correctly assembled. Using the second where you needed the first is the root cause of most broken links.
How to use it
- Pick encode or decodeEncode turns readable text into percent-escapes; decode turns escapes back into readable text.
- Choose the encoding functionComponent encoding for a single parameter value, full-URI encoding for an entire assembled URL.
- Paste your text or URLAny length, any language. UTF-8 multibyte characters are handled correctly in both directions.
- Inspect the parameter tablePaste a full URL and every query parameter is split out with its decoded value in a readable table.
- Copy the resultThe output is ready to paste into a link, a codebase or a marketing platform.
Features
- Both encoding modesencodeURIComponent and encodeURI side by side, with a plain-English explanation of which to use.
- Query parameter tableAny URL is broken into its parameters with decoded values, making long tracking links readable.
- Unicode correctAccented characters, emoji and non-Latin scripts are encoded as UTF-8 bytes exactly as the standard requires.
- Double-encoding detectionWarns when input already appears encoded, so you do not turn %20 into %2520.
- Form encoding optionSwitch spaces between %20 and + to match application/x-www-form-urlencoded behaviour.
- Local onlyURLs with session tokens or personal data in the query string never leave your browser.
Who uses this tool
- Web developersBuild correct query strings and debug links that break when a parameter contains a reserved character.
- MarketersCheck that UTM campaign names with spaces and ampersands survive the trip into analytics intact.
- API integratorsEncode path segments and parameter values that contain slashes, colons or non-Latin characters.
- Support teamsDecode a long tracking URL from a ticket to see what it actually points at before clicking it.
Tips worth knowing
- Use component encoding for values and never for the whole URL — encoding a full URL with it escapes the :// and breaks the link.
- If you see %2520 in a link, the value has been encoded twice. Decode once and re-encode from the original text.
- Encode UTM values before pasting them into a campaign builder; many builders do not encode spaces for you.
Frequently asked questions
What is the difference between encodeURI and encodeURIComponent?
encodeURIComponent escapes every reserved character, including & = ? / and #, and is correct for encoding a single parameter value. encodeURI leaves those structural characters intact and is only for encoding a complete, already-assembled URL. Using encodeURI on a value is the most common cause of broken query strings.
Why do spaces sometimes become + and sometimes %20?
Both are valid in different places. %20 is the general percent-encoding for a space and works anywhere in a URL. The + form comes from HTML form submission (application/x-www-form-urlencoded) and is only valid inside a query string. This tool lets you choose.
What does %20 mean?
It is a percent-encoded space: % introduces an escape and 20 is the hexadecimal value of the space character in ASCII. Every escaped character follows the same pattern, with multibyte UTF-8 characters producing several escapes in a row.
Can I decode a URL that contains %2520?
Yes — decode it twice. %2520 means the % of %20 was itself encoded, so the value passed through an encoder one time too many. Decoding once gives %20 and decoding again gives the space.
Does encoding a URL make it safe to click?
No. Encoding is about syntax, not security. A percent-encoded link points at exactly the same destination as the unencoded one. Use the parameter table here to read where a link actually goes before you follow it.
Is my URL logged anywhere?
No. Encoding and decoding run in your browser. That matters because URLs frequently contain session tokens, password reset links and personal data in their query strings.