URL Encoder & Decoder
Percent-encode or decode URLs and query string parameters instantly.
URLs can only safely contain a limited set of characters — letters, digits, and a handful of punctuation marks — so anything else (spaces, ampersands, non-Latin text, special symbols) has to be percent-encoded before it can be placed inside a URL or query string. Get this wrong and you end up with broken links, truncated query parameters, or a server that silently misinterprets part of your request as a separate parameter.
This tool wraps the browser's built-in encodeURIComponent and decodeURIComponent functions, which correctly handle the full range of URL-safe encoding including multi-byte unicode characters. It's scoped to component-level encoding (for individual query parameter values), which is what you want in the vast majority of cases — encoding an entire URL with encodeURI would leave structural characters like / and : untouched, which is correct for a full URL but wrong for a single parameter value that might itself contain those characters.
Both encoding and decoding update live as you type, and malformed percent-encoded sequences on the decode side are caught and reported clearly rather than throwing a cryptic runtime error.
How to use URL Encoder & Decoder
- 1
Choose a direction
Use the Encode tab for turning raw text into a URL-safe string, or Decode for the reverse.
- 2
Paste your text or URL fragment
Type or paste into the input box.
- 3
Copy the result
The converted value updates instantly — click Copy to grab it.
Features
- Correctly handles unicode and multi-byte characters
- Live conversion as you type
- Clear error reporting for malformed percent-encoding
- Uses component-level encoding, correct for query parameter values
Frequently asked questions
Common mistakes to avoid
- Double-encoding a value that's already percent-encoded, turning % into %25 and corrupting the data.
- Encoding an entire URL with component-level encoding, which breaks the protocol and path separators.
- Forgetting to decode a query parameter before using its value in application logic, leaving %20 literally in the string.
Get new tools in your inbox
One email a month with new tools, guides, and updates. No spam, unsubscribe anytime.

