Skip to content
CHARTOVANA

URL Encoder / Decoder

Percent-encode text for a URL, or decode an encoded URL back to readable text, with full UTF-8 support. Everything runs in your browser.
Runs in your browser. Nothing is uploaded.

Component mode encodes the text as one value: spaces become %20 and reserved characters such as &, = and ? are encoded.

How to use the URL Encoder / Decoder

  1. Choose Encode or Decode, then choose whether you are working with a query-string value (Component) or a whole link (Full URL).
  2. Type or paste your text into the left box. The result appears on the right as you type.
  3. Use Copy to copy the result, or Clear to start again.

Examples

  • a b&c becomes a%20b%26c in Component mode, ready to sit inside a query string.
  • https://example.com/a b?q=café&x=1 becomes https://example.com/a%20b?q=caf%C3%A9&x=1 in Full URL mode: the structure and & are kept, while the space and the é are encoded.
  • Decoding %F0%9F%9A%80 returns 🚀, because the four bytes are read as one UTF-8 character.

Percent-encoding, component by component

Why URLs need encoding

A URL may only contain a limited set of characters. Spaces, non-ASCII letters, emoji and reserved characters such as &, =, ? and # have to be written as percent-encoded UTF-8 bytes: a space becomes %20, é becomes %C3%A9 and 🚀 becomes %F0%9F%9A%80. Decoding turns those sequences back into the original characters.

Component vs Full URL

Component mode is for one value: a search term, a query-string value or a path segment. It encodes every reserved character, so a value containing & or = cannot break the surrounding URL. Full URL mode leaves : / ? # & = alone, so an existing link keeps its structure while its spaces and non-ASCII characters are still encoded.

Spaces and plus signs

This tool writes spaces as %20, which works everywhere. Some form-encoding schemes use + for a space instead; if you are decoding such data, replace + with a space before decoding. A literal + is encoded as %2B.

When decoding fails

A percent sign must be followed by two hexadecimal digits that form part of a valid UTF-8 sequence. Text such as a lone % or a truncated sequence like %E0%A4%A cannot be decoded, and the tool reports an error rather than guessing.

Frequently asked questions

What is the difference between Component and Full URL?

Component encodes a single value, including &, =, ? and /, so it is safe inside a query string. Full URL keeps those reserved characters so the address still works, and only encodes the characters that are not allowed, such as spaces and non-ASCII letters.

Should a space be %20 or +?

In a URL path or query string, %20 is the standard and works everywhere. The + convention comes from HTML form submissions and some query parsers; only use it where the receiving server expects it.

Why does decoding say the input is invalid?

The text contains a percent sign that is not followed by a complete UTF-8 byte sequence, for example a lone % or a truncated %E0%A4. Fix or remove that sequence and the rest will decode.

Is my text uploaded or saved?

No. Encoding and decoding run in your browser with JavaScript. Your text is never sent to a server and is not stored, so it is gone when you close or reload the page.

Last updated