URL Encoder/Decoder

Encode and decode URLs and query parameters.

Paste a string to convert reserved and non-ASCII characters into their %XX percent-encoded form, or paste an encoded URL to decode it back to a human-readable version. Both directions handle UTF-8 cleanly so emojis and non-Latin characters survive the round-trip.

Common use cases: building safe query strings, debugging redirect URLs from OAuth flows, inspecting tracking links, and decoding values that show up in log files as long sequences of % escapes.

URL

Encoded

Frequently asked questions

When do I actually need to URL-encode?
Any time a value travels in a URL path, query string, or form body and contains characters outside the unreserved set (letters, digits, - _ . ~). Spaces become %20 or +, slashes inside a parameter become %2F, ampersands become %26, and so on.
What's the difference between encodeURI and encodeURIComponent?
encodeURI assumes the input is a full URL and leaves characters like :, / and ? alone. encodeURIComponent assumes the input is a single value (a path segment or a parameter) and encodes everything that isn't unreserved. For query-string values you almost always want encodeURIComponent.
Why does my space sometimes become %20 and sometimes +?
Both are valid encodings for a space inside a query string. %20 is the percent-encoded form used everywhere in URL paths; + is a legacy convention from application/x-www-form-urlencoded form bodies. Decoders should accept either; encoders should pick one and stay consistent.
I decoded a string and got mojibake — what happened?
The original was almost certainly encoded with a non-UTF-8 charset (often Latin-1 or Windows-1252) from an older system. This tool decodes as UTF-8.