Back to tools

URL encoder & decoder

URL-encode and decode text.

Mode

Scope

Component escapes every reserved char. Full URL preserves `:` `/` `?` `#`.

Output

Encoding and decoding happen in this browser tab. Nothing is uploaded.

How it works

1. Pick a mode

Pick encode or decode, then choose component or full-URL scope.

2. Pick a scope

Paste the string. Component mode escapes every reserved character (use for query values). Full-URL mode preserves `:` `/` `?` `#` etc. (use for whole URLs).

3. Copy

Copy the result. Runs in your browser via the built-in `encodeURIComponent` / `encodeURI`.

About the URL Encoder & Decoder tool

The URL Encoder & Decoder converts text to and from percent-encoding — the %XX escapes that let spaces, punctuation, and non-ASCII characters travel safely inside a web address. Pick encode or decode, then choose the scope: component mode (encodeURIComponent) escapes every reserved character and is the right choice for a single query-string value, while full-URL mode (encodeURI) leaves structural characters like : / ? and # intact so you can encode a whole URL without breaking it.

It is a quick fix for building query strings, debugging links that contain spaces or special characters, decoding a messy URL someone pasted, or preparing redirect and tracking parameters. When decoding fails because of a malformed escape such as %ZZ, the tool tells you rather than silently mangling the text. Everything runs in your browser through the standard built-in helpers, so your input is never sent anywhere, there are no usage limits, no account is required, and it works offline after the first load.

Frequently asked questions

Component vs full URL?

`encodeURIComponent` (component) escapes every reserved character — use it when the value is a single URL piece like a query parameter value. `encodeURI` (full URL) leaves URL-structure characters like `:` `/` `?` `#` alone — use it when the input is already a complete URL.

Why does decode sometimes fail?

Decoding fails when the input contains a malformed `%` escape — for example `%ZZ` or a stray `%` followed by less than two hex digits. The error message reports it without uploading anything.

Does anything leave my device?

No. Encoding uses the browser's built-in helpers — your input is never sent anywhere.