Developer Tools

URL Encoder & Decoder

Percent-encode text for safe use in a URL or query string, or decode an already-encoded URL back to readable text.

Copied!
Encoded or decoded text will appear here.
Advertisement

How to use the URL encoder/decoder

  1. Paste a piece of text, a single query value, or a full URL into the box.
  2. Click "Encode" to percent-encode reserved characters (spaces, &, ?, #, =, and non-ASCII characters), or "Decode" to reverse an encoded string back to plain text.
  3. If you're building a query string, encode each parameter value individually rather than the whole URL — encoding the full URL would also escape the slashes and colons that need to stay literal.
  4. Copy the result with the Copy button.

Why use a URL encoder?

URLs can only safely contain a limited set of characters. Spaces, ampersands, question marks, and non-ASCII text (like emoji or accented letters) all need to be percent-encoded before they can be embedded in a link or query string, otherwise the URL breaks or gets misinterpreted. This tool uses JavaScript's built-in encodeURIComponent and decodeURIComponent to handle a single value or component correctly, which is what you want for query parameters — it won't mangle a full URL's structural characters if you only encode the parts that need it. Everything runs locally, so nothing you paste is logged or transmitted.

What's the difference between encoding a URL and a query parameter?

This tool percent-encodes reserved characters like spaces, &, ?, and = so a single value can be safely dropped into a query string. If you're encoding a full URL that already has its own structure, only encode the individual parameter values, not the slashes and colons that make up the URL itself.

What happens if I decode text that isn't URL-encoded?

If the text contains an invalid percent-sequence, you'll see a clear error message instead of a crash or garbled output. Plain text with no percent-encoding just decodes back to itself unchanged.

Is my data sent anywhere when I use this tool?

No. Encoding and decoding happen entirely in your browser with JavaScript's built-in functions. Nothing is uploaded or logged.