🔗URL Encoder / Decoder

Encode text to percent-encoded URLs or decode them back — live, bidirectional, full Unicode.

encodeURIComponent / decodeURIComponent
Plain text
Percent-encoded

URL encode decode online — free, accurate, private

Working with URLs or query strings? Our free URL Encoder / Decoder converts both ways instantly. Paste text to percent-encode it for safe use in a URL, or paste an encoded string to decode it back to readable text — change either side and the result updates live, with no buttons to press. It handles full Unicode correctly, so emoji, accents, and non-Latin characters convert accurately without breaking.

It covers what developers actually need: switch between component mode, for encoding individual query-parameter values and path segments (using encodeURIComponent / decodeURIComponent), and full-URL mode, which preserves the structure characters of a complete address (using encodeURI / decodeURI). Decoding invalid input gives you a clear error instead of garbled text or a silent crash, so you can spot exactly what's wrong. Everything runs locally in your browser and never touches a server, so you can safely work with sensitive values like tokens and API parameters.

About the URL Encoder / Decoder

What percent-encoding is

URLs can only contain a safe subset of ASCII characters. Any other character — spaces, accents, emoji, and characters with special URL meaning like &, =, ?, and # — must be encoded as a % followed by the character's two-digit hexadecimal code. For example, a space becomes %20, & becomes %26, and the emoji 🚀 becomes %F0%9F%9A%80. Decoding reverses the process — %20 becomes a space again.

Component vs full-URL mode

The two modes correspond to the two JavaScript encoding functions and serve different purposes:

Component mode

Uses encodeURIComponent / decodeURIComponent. Encodes everything including &, =, ?, /, :, and # — making it safe to use a value as a query-string parameter or path segment without corrupting the URL structure.

Full URL mode

Uses encodeURI / decodeURI. Preserves URL-structure characters (:, /, ?, =, &, #, @) so you can encode a complete URL and keep its scheme, host, path, and query string intact.

Features

Two-way live conversion

Type in either field — Plain text or Percent-encoded — and the other updates instantly. No separate encode/decode buttons to manage.

Component & full-URL modes

Switch between encodeURIComponent (for parameter values and path segments) and encodeURI (for whole URLs) with a single click. Re-encodes the active field immediately.

Full Unicode / UTF-8

Emoji, accented characters, and non-Latin scripts encode correctly to their UTF-8 percent-encoded form and decode back without errors.

Decode validation

Malformed percent-encoding (a lone %, %ZZ, truncated sequences) shows a specific, readable error instead of silently producing garbled output or throwing an uncaught exception.

Copy buttons

Copy either field's content to the clipboard with one click. Falls back to execCommand for older browsers.

Fully client-side

No server round-trips, no analytics on your input. Tokens, API keys, and query parameters stay in your browser.

Nothing stored

Input is not logged, saved, or retained. Refresh the page and it's gone.

Mobile-friendly

Fields and mode toggle stack on small screens with no horizontal overflow. All features work on mobile browsers.

When to use each mode

Use component mode when you have a single value to embed in a URL — a search query, an access token, a redirect path, or a filename. Encoding a b&c=d in component mode gives a%20b%26c%3Dd, which is safe to place after a = in a query string without confusing the parser. Use full-URL mode when you have a complete URL that contains characters like spaces or accents in the host or path but you don't want to lose the :// and / separators. Encoding https://example.com/a b?q=1 in full-URL mode preserves the slashes, colon, ?, and = while encoding the space as %20.

Frequently Asked Questions

How does the URL encoder/decoder work?

Paste text in the Plain text field to percent-encode it for use in a URL, or paste a percent-encoded string in the right field to decode it back to readable text. Either field updates the other instantly as you type — no button needed.

Is it free?

Completely free. No sign-up, no downloads, no rate limits, and no limits on input length.

What is URL encoding?

Also called percent-encoding, it replaces characters that aren't safe in a URL with a % followed by their two-digit hexadecimal code — for example, a space becomes %20 and & becomes %26. This ensures data travels safely in a web address without being misread as URL syntax.

What's the difference between component and full-URL mode?

Component mode (encodeURIComponent / decodeURIComponent) encodes everything including &, =, ?, /, :, and #, which suits individual query-parameter values and path segments. Full-URL mode (encodeURI / decodeURI) leaves URL-structure characters intact so you can encode a whole address without breaking its scheme, host, and path separators.

Which mode should I use?

Use component mode when encoding a single value that will go inside a query string or path segment — for example a search term, a token, or a file name. Use full-URL mode when encoding an entire URL and you want to keep its structure (scheme://, slashes, ? and = separators) intact.

Does it handle emoji and accented characters?

Yes. encodeURIComponent and encodeURI both encode characters to their UTF-8 byte representations, so emoji, accented letters, and non-Latin scripts all round-trip correctly through percent-encoding.

Why am I getting a decode error?

The input contains invalid percent-encoding — most often a stray % not followed by exactly two hex digits (0–9, A–F), or a truncated multi-byte sequence. The tool catches these and shows a specific error message rather than producing garbled text or throwing an exception.

Is my data sent anywhere?

No. All encoding and decoding runs locally in your browser using JavaScript. Nothing is sent to any server, so sensitive values like tokens, API keys, and query parameters stay on your device.

Is my data stored?

No. The tool does not store, log, or retain any input. When you close or refresh the page, everything is gone.

Does it work on mobile?

Yes. The layout is fully responsive. On small screens the two fields and the mode toggle stack vertically with no overflow, so you can encode and decode URLs on any device.