TextArray
100% local

URL encode and decode

Percent-encode text for URLs and decode escaped addresses back to plain text.

Input
Output

URL encode and decode

URLs only accept a limited set of characters, so anything else — spaces, accented letters, ampersands, emoji — has to be percent-encoded as %XX escapes. Paste text to encode it, or paste an escaped address to read it back in plain form. Use it when building query strings by hand, debugging a redirect chain, or making sense of a tracking link someone sent you.

The scope selector decides how aggressive encoding is. "Component" escapes everything that is not a plain character, including & = ? and #, which is what you want for a single query value or path segment — the value stays a value and cannot break out into the URL structure. "Full URL" leaves the structural characters alone, so an entire address keeps its scheme, separators and fragment while spaces and non-ASCII characters still get escaped.

The "Treat + as space" option covers HTML form submissions, where spaces travel as + rather than %20. Turn it on and encoding produces +, while decoding converts + back into spaces. Leave it off and + is treated as a literal plus sign, which is what you want for most modern APIs.

Non-ASCII text is encoded as UTF-8, matching what browsers and servers expect, so Slovak diacritics and emoji round-trip exactly. If a string contains a broken escape — a stray % or a truncated sequence — you get a clear explanation instead of a wrong answer. Everything runs in your browser and nothing is uploaded, so URLs containing session tokens, signed parameters or internal hostnames are safe to inspect here. The tally under the output counts how many sequences were escaped or unescaped.

FAQ

What is the difference between component and full URL?
Component escapes & = ? and # too, so a value cannot break the surrounding URL — use it for one query parameter. Full URL keeps those structural characters, so a whole address stays usable.
When should I turn on "Treat + as space"?
For HTML form data, where spaces are sent as +. For most other cases leave it off so + stays a literal plus sign.
How are diacritics and emoji handled?
They are encoded as UTF-8 byte escapes, the same as browsers do — "šťastie" becomes %C5%A1%C5%A5astie and round-trips exactly.
Why does decoding report an error?
The input has a malformed % sequence — a lone %, an incomplete pair, or bytes that are not valid UTF-8. Check the end of the string for a truncated escape.
Is my text uploaded anywhere?
No. The tool runs entirely in your browser and your text never leaves your device.