URL Encoder / Decoder
Quickly percent-encode URL strings and decode encoded URLs. Supports full URL encode and encodeURIComponent modes.
URLs may only contain a restricted set of ASCII characters, so anything else — spaces, ampersands, accented letters, emoji — must be percent-encoded to survive the trip. Get this wrong and a query parameter silently truncates at the first '&', or a redirect drops half its target. This tool encodes and decodes both full URLs and individual components, so you can pick the behaviour you actually need.
How to encode or decode a URL
- Choose Encode to make text safe for a URL, or Decode to turn percent-escapes back into readable characters.
- Decide whether you are handling a whole URL or a single parameter value — this matters, because a full URL must keep its ':', '/', and '?' intact while a parameter value must escape them.
- Paste your input and read the converted result.
- Check the output for '%25' sequences, which indicate the input was already encoded once.
The URL Encoder / Decoder runs entirely in your browser — nothing you enter is uploaded, stored, or logged.
When to use this tool
Building query strings safely
A search term containing '&' or '=' will break the parameter it sits in unless encoded. Encoding the value — not the whole URL — is the correct fix.
Passing a URL as a parameter
Redirect and callback parameters carry one URL inside another. The inner URL must be fully component-encoded, turning '://' into '%3A%2F%2F', or the outer URL's parser will misread it.
Reading encoded links from logs
Analytics and server logs store URLs encoded. Decoding makes it obvious what a user actually searched for or which campaign parameters were attached.
Things worth knowing
- Spaces become '%20' in paths but may appear as '+' in query strings — both decode to a space, but only in the query component.
- Encoding an already-encoded string double-encodes it: '%20' becomes '%2520'. If you see '%25' in output you did not expect, that is the symptom.
- The characters - _ . ~ are unreserved and never need encoding.
- Fragment identifiers after '#' are never sent to the server, so encoding problems there are purely client-side.
Frequently Asked Questions
Why encode URLs?
What is the difference between encodeURI and encodeURIComponent?
Why does my encoded URL have %2520 in it?
Do I need to encode non-English characters?
Should spaces be %20 or +?
Is there a maximum URL length?
Related Tools
Base64 Encoder / Decoder
Encode text or decode Base64 strings instantly with live UTF-8 support and URL-safe mode.
JWT Decoder & Expiration Checker
Decode JSON Web Tokens (Header, Payload, Signature) and inspect expiration timestamps safely in your browser.
JSON Formatter & Validator
Format, validate, prettify, minify, and inspect JSON payloads with real-time error detection.