Skip to main content
What you enter is never sent to a server. It is processed entirely in your browser and not stored anywhere.

URL Encoder & Decoder

Turn caf%C3%A9%20%26%20bar back into café & bar, or encode text so it is safe inside a URL. Paste a full URL and the decoder splits it into host, path and a table of query parameters; double-encoded values are unwrapped repeatedly. Legacy pages that encoded bytes in EUC-KR instead of UTF-8 are read correctly too. Nothing leaves your browser.

Paste a string and the result appears here.

Other possible interpretations

What percent encoding is

URLs may only contain ASCII letters, digits and a handful of symbols (RFC 3986). Everything else, from spaces and & to accented letters and emoji, is written as its UTF-8 bytes, each as %XX. One accented letter becomes two bytes (é → %C3%A9) and an emoji becomes four. Browsers render the address bar in readable form but copy the encoded version, which is why pasted links look like this.

TextEncodedNotes
é%C3%A9UTF-8, the standard today
é%E9Latin-1 on very old sites; the decoder falls back when UTF-8 fails
space%20 or ++ means space only in form data and query strings
& = ? # /%26 %3D %3F %23 %2FEncoded only when they are part of a value, not when they are delimiters

The three encoding modes

Decoding accepts all three automatically. When the input contains +, the decoder also shows the reading where + is a space. Double encoding turns % into %25 (so %25C3%25A9); the decoder keeps unwrapping until nothing changes and reports how many passes it took.

When decoded text looks garbled

Output like é or ’ means the bytes were encoded in one charset and decoded in another. Typically a form was submitted as Windows-1252 or Latin-1 while the server expected UTF-8, or the other way round. The "Charset" line tells you which reading worked. Text that was already garbled elsewhere can be repaired on the mojibake fixer. If a parameter contains Base64 or a JWT, the universal decoder keeps unwrapping it.

FAQ

I pasted a URL but no parameter table appeared.

The table appears when there is a ?name=value&name=value query string. A bare a=1&b=2 without http(s):// works too.

Another tool gives a different encoded result.

Mode differences. Value encoding escapes /; whole-URL encoding keeps it. Spaces are %20 in value and URL modes but + in form mode.

Is the URL I paste sent anywhere?

No. Conversion happens in your browser and nothing is transmitted or stored, so URLs containing session IDs or tokens are safe to paste.

Sources