URL Encoder & Decoder
Make a search term safe to use as one URL value, or decode percent escapes to inspect a link. Choose component mode for individual values and full-URL mode when you need to preserve URL separators.
Component mode escapes separators such as /, ?, & and =. Full URL mode preserves them. A plus sign stays a plus sign when decoding; this is percent encoding, not form-data decoding. Your input is never opened as a link.
Processed in your browser. Your text is not uploaded.
How to use it
- Paste the plain or percent-encoded text.
- Choose component mode for one value, or full-URL mode for a complete URL.
- Encode or decode, inspect the result and copy it into the intended context.
A few useful details
Choose the right scope
Component mode encodes characters such as & and =. Full-URL mode preserves URL syntax such as /, ? and &.
Understand the escapes
For example, a space becomes %20 and the component value tea & coffee becomes tea%20%26%20coffee.
Inspect locally
Encoding and decoding happen in your browser. The tool does not visit the URLs you paste.
Questions, answered.
Which mode should I use for a search parameter?
Use component mode for the parameter value itself. For the value tea & coffee, encoding the ampersand prevents it from being interpreted as the separator before another parameter.
Why does decoding leave a plus sign?
Generic percent decoding treats + as a literal plus. HTML form query encoding can use + for a space, which needs form-specific handling. A real plus in a form value is normally encoded as %2B.
Why do I see %2520 instead of %20?
The text has probably been encoded twice: the second pass converts the percent sign in %20 to %25. Encode once for each actual nesting layer, and decode only the layer you intend to inspect.
Does this encrypt a link or hide private data?
No. Percent encoding is reversible formatting. Passwords, access tokens and other secrets remain sensitive after encoding.
Why does decoding fail?
An incomplete escape such as %2, a non-hexadecimal escape or invalid encoded UTF-8 can fail decoding. Check whether the input was truncated or whether it uses a different encoding.