Overview
URLs look simple until you try to put real language in one. A link can safely contain letters, digits and a modest set of punctuation; the moment a value includes a space, an ampersand, a question mark or a letter from a non-Latin script, the address becomes ambiguous. Percent-encoding settles which it is, before the link breaks.
This page does the job live, in both directions,. Full URL mode protects only the characters that would be unsafe anywhere, while leaving the structure of the address — its slashes, question mark and parameter separators — exactly as written. Component mode is stricter: it is meant for a single value destined to sit inside a URL, so it also encodes the structural characters, ensuring the value cannot leak out and reshape the link around it.
What is percent-encoding?
Percent-encoding rewrites a character as a percent sign followed by two hexadecimal digits — the character's byte value, in other words. A space becomes %20, an ampersand becomes %26, and characters outside the Latin alphabet take more room: they are first written as UTF-8, and then each of their bytes gets its own percent code, which is why a single Urdu or Chinese character can appear as a run of three codes in a link.
The reason for the fuss is that many characters already have jobs inside a URL. The question mark starts the query string, the ampersand separates parameters, the equals sign binds a name to a value, and the hash marks a fragment. Encoding the data copies removes the ambiguity while keeping the address as plain, shareable text.
Features
- Three modes in one place — full-URL encoding, single-component encoding and decoding, switched with a single control.
- Live results — the output refreshes on every keystroke and every mode change; there is no button to remember.
- The real browser functions — encoding uses the same standard operations your own applications would, so results match what servers expect.
- UTF-8 correct — names, places and sentences in any script encode byte-by-byte the way the specification requires.
- A forgiving decoder — if strict component decoding trips on a malformed sequence, the tool falls back to a gentler full-URL decode and tells you it did.
- Reference table built in — the percent codes for the characters people look up most are listed below, no second tab required.
- One-click copy — grab the finished link or value without wrestling a wrapped line of text.
- Nothing uploaded — the conversion runs in this page, so even links containing private parameters stay on your machine.
Benefits
- Links that survive the journey — an encoded address means the same thing in an email, a document and a browser bar.
- No more swallowed parameters — values containing &, = or ? arrive whole instead of splitting your query string apart.
- Readable again on demand — decode a forbidding wall of percent signs back into the words a human actually typed.
- Fewer production mysteries — half of "the link works for me" bugs turn out to be an unencoded character; this removes the guesswork.
- Safe to use on real links — because nothing is sent anywhere, tokens and signed URLs can be inspected without exposure.
Who can use it
Developers use an encoder while building API calls and debugging why a request arrived with its parameters scrambled. Marketers use it when assembling campaign links. Writers and support staff use the decoder to read shared links before forwarding them,.
How to use it
- Pick the mode. Whole address you intend to keep as a link: Full URL. One value going inside a link, such as a search term: Component. Encoded text you want to read: Decode.
- Type or paste into the box — the result updates as you go.
- Check the status line; if decoding had to fall back to the gentler method, it says so.
- Copy the result and use it wherever the link is headed.
- When in doubt between the two encode modes, choose Component for values and Full URL for finished addresses.
Common characters and their percent encodings
These are the characters that come up again and again. In Component mode every one of them is encoded; in Full URL mode the structural ones — such as /, ? and & — are deliberately left alone, because they are doing their normal job in the address.
| Character | Encoded | Why it matters |
|---|---|---|
| (space) | %20 | Spaces are not allowed raw in a URL |
| ! | %21 | Sub-delimiter, encoded in components |
| " | %22 | Would clash with quoted HTML attributes |
| # | %23 | Starts the fragment part of a URL |
| $ | %24 | Sub-delimiter, encoded in components |
| % | %25 | The escape character itself — always encode it in data |
| & | %26 | Separates one query parameter from the next |
| ' | %27 | Common in names; encoded in components |
| + | %2B | Means a space in form-style query strings, so a literal plus needs encoding |
| , | %2C | Often a list separator inside values |
| / | %2F | Path separator — encoded only in components |
| : | %3A | Separates scheme and port in an address |
| ; | %3B | Legacy parameter separator |
| = | %3D | Binds a parameter name to its value |
| ? | %3F | Starts the query string |
| @ | %40 | Separates user information from the host |
| < | %3C | Unsafe in addresses and markup alike |
| > | %3E | Unsafe in addresses and markup alike |
| [ | %5B | Reserved; also used around IPv6 hosts |
| ] | %5D | Reserved; also used around IPv6 hosts |
Frequently asked questions
What is the difference between Full URL and Component mode?
Intent. Full URL mode assumes the text is a finished address whose structure should survive: slashes, the question mark and parameter separators stay readable, and only genuinely unsafe characters are encoded. Component mode assumes the text is one value that will be placed inside an address, so it encodes the structural characters too — an ampersand inside the value can then never be mistaken for a separator.
Why does a space sometimes appear as + instead of %20?
History. The form-submission format used by HTML forms writes spaces as plus signs inside query strings, and many servers still read them that way. In every other part of a URL, %20 is the correct encoding for a space — and note the trap this creates: a plus sign that is genuinely part of your data must be encoded as %2B, or a form-style reader will turn it into a space.
Does encoding a URL encrypt or hide it?
Not in the slightest. Percent-encoding is a public, mechanical rewriting that anyone can reverse — the Decode mode on this page does it in one click. It protects a link's structure, never its contents, so never treat an encoded token or password as a protected one.
Why did decoding fail or fall back to the gentler method?
Strict decoding expects every percent sign to be followed by two valid hexadecimal digits and the resulting bytes to form valid text. A link that was truncated in a message, or encoded twice by mistake, breaks those rules. The fallback applies the looser full-URL decoding, which fixes many slightly damaged addresses; if even that fails, the status line reports the problem instead of inventing output.
How are non-English characters handled?
They are first written in UTF-8, then each byte is percent-encoded. A single character may therefore become two, three or four codes in a row, which is exactly what browsers and servers expect.
Is anything I paste sent to a server?
No. Encoding and decoding use functions built into your browser, running on this page. That matters here more than most places, because URLs so often carry tokens and private parameters — with this tool, they never leave your device.
Conclusion
Most link trouble is not mysterious at all — it is one unencoded character quietly changing what an address means. Keep this page nearby, the link you share will be the link that arrives, characters and all.