Paste a readable string to percent-encode it for a URL, or paste an encoded string to read it back; click Encode or Decode and the result appears in the output box, with malformed percent-codes flagged inline rather than failing silently.
URL encoding converts characters like spaces, brackets, and non-ASCII text into a percent-followed-by-hex format that browsers and servers can safely pass in a URL. The Decode button reverses that: paste a percent-encoded string and the tool returns the original readable text.
URL Decoder
Encode text for safe use in a URL, or decode a percent-encoded URL string back to plain text.
Use it to build a query-string value, decode a shared link, or inspect a percent-encoded parameter. Nothing you type is saved; refreshing the page clears the box.
Encoding uses the browser's own encodeURIComponent/decodeURIComponent and runs locally - no upload and no account. An invalid encoding is shown inline as an error message, so you do not have to guess what went wrong.
What the percent codes stand for
Percent codes are placeholders that keep special characters from breaking a link. Decoding a string turns a sequence like %20 back into a space and %2F back into a slash, along with every other escaped character; running it the other way puts those percent codes back so the text can sit safely inside a URL.
Which characters URL Decoder's Encode button leaves untouched
URL Decoder's Encode button does not touch every character in the box. Letters (A-Z, a-z), digits (0-9), and eight punctuation marks - hyphen, underscore, period, exclamation mark, tilde, asterisk, and both parentheses - pass through Encode unchanged; every other character becomes a percent code, including a few you might expect to survive:
| Character you type | What Encode writes |
|---|---|
| + | %2B |
| & | %26 |
| ? | %3F |
| @ | %40 |
The plus sign is the one that trips people up: a literal + you type is percent-encoded to %2B, never left as-is, because Encode has no way to tell a "plus means space" convention from a real plus character in your input.
Encode one value, not a whole address
URL Decoder's Encode button is built to turn a single value - a search phrase, a filename, one query-string parameter - into something safe to paste inside a URL. It is not built to encode an entire web address. Run a full URL like https://example.com/a b?x=1&y=2 through Encode and it also escapes the :// and every path slash, turning it into https%3A%2F%2Fexample.com%2Fa%20b%3Fx%3D1%26y%3D2 - a string no browser will follow as a link. The fix is to encode the value on its own first (a b?x=1&y=2 in that example), then paste the encoded result into the URL you already have, after its existing ? or &. That behavior is deliberate: JavaScript actually has two related encoding functions, one built for a whole address (it leaves `:`, `/`, `?`, `#`, `[`, `]`, and `@` alone) and one built for a single value inside an address (it escapes those characters too); URL Decoder's Encode button always uses the second, one-value form, which is why it escapes those structural characters even when your input happens to look like a complete URL.
What exactly triggers the inline error
URL Decoder's Decode button does not fail silently. It shows the inline message "Invalid URL encoding" only when the text you paste breaks the percent-encoding format itself, not when the decoded result happens to be unusual text. Two things reliably trigger it: a lone percent sign that is not followed by two valid hex digits (typing 100% off instead of 100%20off, for example), and a percent-encoded sequence that is cut short partway through a multi-byte character - pasting %E4%BD without the third byte that completes it is a case that can happen if a link gets truncated when it is copied. Both cases show as an error instead of a wrong or garbled result, so a failed decode always tells you the input was broken rather than guessing at an answer.
Frequently Asked Questions
What does URL Decoder do?
Encode text for safe use in a URL, or decode a percent-encoded URL string back to plain text.
When should I reach for url decoder?
Use it to build a query-string value, decode a shared link, or inspect a percent-encoded parameter.
What complementary tools work well alongside url decoder?
Nothing you type is saved; refreshing the page clears the box.
Does Decode turn a plus sign back into a space?
No. URL Decoder decodes percent-codes only, so a literal + stays a + - turning a plus into a space is a separate convention used by web forms, not by the percent-encoding this tool implements.
Does Encode handle accented letters, non-Latin scripts, and line breaks?
Yes. Encode converts each character to its UTF-8 bytes and percent-encodes every byte, so an accented letter like e-acute becomes a two-byte code and a full line of Japanese or Arabic text becomes a run of percent codes; a line break inside your input becomes %0A rather than being dropped.