URL Encode / Decode

Local processing · never uploaded

Percent-encode text for URLs and decode it back — component or full-URL mode.

input
output
Type or paste text to URL-encode…

What is URL Encode / Decode?

URL Encode / Decode is a fast, free online tool that percent-encodes text so it is safe to put inside a URL, and decodes percent-encoded text back into readable characters — instantly and entirely in your browser. It is the everyday companion for building query strings, debugging API requests, and reading back encoded links.

URLs may only contain a limited set of ASCII characters. Anything outside that set — spaces, accented letters, emoji, Chinese characters, or reserved punctuation used with a special meaning — has to be represented as "percent-encoding": each byte is written as a "%" followed by two hexadecimal digits. A space becomes %20, an ampersand becomes %26, and the UTF-8 bytes of "你" become %E4%BD%A0. Decoding simply reverses that mapping. Because the encoding is defined per UTF-8 byte, this tool round-trips non-Latin text and emoji without corruption.

The key decision when encoding is component versus full-URL. Component mode uses encodeURIComponent and escapes the reserved characters that have structural meaning in a URL — / ? : @ & = + $ # — so the result is safe to drop into a single piece such as one query-string value, a path segment, or a form field. Full mode uses encodeURI and deliberately leaves those structural characters alone, so you can encode an entire URL (scheme, host, path, query) without breaking it apart. As a rule of thumb: use component mode for the pieces you assemble yourself, and full mode for an already-complete URL that just contains a few unsafe characters like spaces.

Decoding is strict: a malformed escape sequence — a lone "%" or an incomplete "%E0%A4%A" — is invalid and is flagged rather than silently mangled, which helps you spot a truncated or double-encoded link. Everything runs locally in your browser, so you can encode and decode URLs that contain tokens, signatures, or other sensitive parameters without anything being uploaded, logged, or stored.

FAQ

What is the difference between component and full mode?

Component mode (encodeURIComponent) escapes reserved characters like / ? & = #, so it is meant for a single value such as one query parameter or path segment. Full mode (encodeURI) leaves those structural characters intact so you can encode a whole URL at once.

When should I use URL encoding?

Whenever you put user input or special characters into a URL — query-string values, path segments, redirect targets, or API parameters. Encoding spaces, &, =, ? and non-ASCII text prevents them from being misread as URL structure.

Why does decoding fail?

Decoding fails when the input contains a malformed percent sequence — a "%" not followed by two valid hex digits, like "100%" or a truncated "%E0%A4%A". Fix or complete the escape sequence and try again.

Does it handle emoji and Chinese characters?

Yes. Encoding and decoding use UTF-8, so emoji, Chinese, Arabic and other non-Latin text are converted to and from their %XX byte sequences and round-trip correctly.

Is my data uploaded anywhere?

No. All encoding and decoding happen entirely in your browser. Your input is never sent to a server, so URLs containing tokens or sensitive parameters stay private.