Loading URL Encoder/Decoder...

URL Encoder / Decoder

Encode or decode URLs, query strings, and parameters — instantly, in your browser.

Plain Text / URL

URL-Encoded Output

Encode or Decode URLs Instantly

This free online tool converts text to and from percent-encoding (URL encoding) — the format used for query parameters, form data, and special characters inside a URL. Type or paste your text, pick Encode or Decode, and get the result immediately as you type.

How It Works

Component Encoding vs. Full URL Encoding

Component encoding (JavaScript's encodeURIComponent) escapes every character that isn't safe in a single query string value, including /, ?, &, and = — use this when encoding a value you're about to insert into a URL. Full URL encoding (encodeURI) leaves those structural characters alone, since encoding them would break the URL itself — use this when encoding an already-complete URL that just has spaces or other unsafe characters in it.

Privacy

All encoding and decoding happens entirely in your browser using JavaScript. Nothing you type is ever sent to a server.

URL Encoding — Options Explained

URL/percent-encoding has a few subtleties that trip people up. Here's what each option on this page actually does.

What Gets Encoded

Any character outside the small set of "unreserved" characters (letters, digits, - _ . ~) is replaced with a %XX sequence representing its byte value — spaces become %20, for example.

Component vs. Full URL

Component encoding (default) also escapes / ? # [ ] @ ! $ & ' ( ) * + , ; =, since those are only safe as structural URL characters, not inside a single value. Enable "full URL" mode to leave them untouched.

Decoding Handles + as Space

Some legacy form encodings use + for spaces instead of %20. Decode mode converts + to a space before percent-decoding, matching how browsers handle application/x-www-form-urlencoded data.

Invalid Input Handling

If the decoded text contains a malformed % sequence (not followed by two valid hex digits), the tool shows an inline error instead of crashing or silently producing garbage output.

Who Uses This Tool?

API Developers

Encode query parameter values before building request URLs by hand, or decode a captured request to see what was actually sent.

Web Developers

Debug redirect URLs, deep links, and share URLs that carry encoded parameters — decode them to read the real values.

QA & Support Teams

Quickly decode a URL pasted from a bug report or support ticket to understand exactly what a user's browser sent.

Students & Learners

See exactly which characters get encoded and why, while learning how URLs and query strings are structured.

Frequently Asked Questions

What is URL encoding?

URL encoding (percent-encoding) replaces characters that aren't safe inside a URL with a % followed by two hexadecimal digits representing the character's byte value, so text with spaces or symbols can be safely included in a URL.

Should I use component or full URL encoding?

Use component encoding (default, checkbox off) when encoding a single value that will go inside a URL, like a query parameter. Use full URL encoding (checkbox on) when you already have a complete URL and just need to escape unsafe characters like spaces without breaking its structure.

Why did decoding fail with an error?

Decoding fails when the input contains a malformed % sequence — for example, a % not followed by two valid hex digits. This usually means the input wasn't fully URL-encoded, or was double-encoded incorrectly.

Does this handle Unicode characters?

Yes. Non-ASCII characters are encoded as their UTF-8 byte sequences (each byte as a %XX triplet), matching how browsers and encodeURIComponent handle Unicode text.

Is my data uploaded anywhere?

No. All encoding and decoding happens locally in your browser with JavaScript. Nothing is sent to a server.

Built by Deepak Kumar — a developer who wanted a JSON tool that respects your privacy. All processing happens in your browser. Your data never leaves your device.