TOOL

URL ENCODER / DECODER

Encode special characters in URLs or decode percent-encoded strings back to readable text. Runs entirely in your browser.

MODE

SCOPE

Component mode: encodes a single value (e.g. a query parameter value). Full URL mode: encodes a complete URL while preserving its structure.

ABOUT THIS TOOL

URLs can only contain a limited set of characters. Special characters — spaces, ampersands, question marks, non-ASCII characters — must be percent-encoded before being used in a URL. For example, a space becomes %20 and an ampersand becomes %26.

Component mode uses encodeURIComponent, which encodes everything except letters, digits, and - _ . ! ~ * ' ( ). Use this for encoding individual query parameter values or path segments.

Full URL mode uses encodeURI, which preserves characters that have meaning in a URL structure (like /, ?, =, and &). Use this when you want to encode a complete URL while keeping its structure intact.

All processing happens in your browser using the native JavaScript encoding functions. No data is sent to a server.

FAQ

When should I use component vs full URL mode?

Use component mode when encoding a query parameter value, a path segment, or any single piece of a URL. Use full URL mode when you have a complete URL that you want to make safe to embed in HTML or pass as a parameter, while preserving its structural characters.

What's the difference between %20 and + for spaces?

Both represent spaces, but in different contexts. %20 is the standard percent-encoding used in path segments and most URL contexts. The + sign represents a space only in application/x-www-form-urlencoded query strings (HTML form submissions). This tool uses %20.

Why does my URL decode to something unexpected?

If the encoded URL contains a + representing a space (from a form submission), this tool will decode it as a literal plus sign. Replace + with %20 before pasting if you need spaces decoded correctly. Also ensure the input is a valid percent-encoded string — malformed sequences will cause a decoding error.

Is my data private?

Yes. All encoding and decoding happens in your browser using native JavaScript. Nothing you enter is sent to any server.