🔗URL Encoder and Decoder

Encode and decode URL text

How to use the URL encoder and decoder

When spaces, accented letters or non-Latin characters sit in a URL as-is, browsers and servers read them differently and the link breaks. URLs therefore keep only a small set of safe characters and rewrite everything else as UTF-8 bytes in percent notation. That is why one accented letter can turn into something like %C3%A9.

There are two encode buttons. "Encode everything" wraps a single parameter value, converting slashes, question marks and ampersands too, so punctuation inside the value cannot break the structure of the address. "Encode whole URL" fixes only the unsafe characters in an already complete link and leaves the structural symbols alone. Running the first one on a finished URL escapes its slashes and the link stops working.

Decoding comes in two flavours as well. The plain decode turns percent notation back into characters, while the query decode first converts plus signs to spaces, because HTML form submissions write spaces that way. If a percent sign is not followed by two hex digits, you get a clear message instead of a silent failure. Input is capped at 200,000 characters and everything runs locally in your browser.

Frequently Asked Questions

When should I use each encode button?

Use "Encode everything" when you are inserting one value into a parameter, and "Encode whole URL" when you only need to fix unsafe characters in a finished link. The first one escapes slashes, so a complete URL would stop working.

My spaces show up as + instead of %20.

HTML form submissions encode spaces as plus signs. Use the query decode button and the plus signs are turned back into spaces before decoding.

Why does decoding fail?

Either a percent sign is not followed by two hex digits, or the string was cut off mid-sequence so the bytes are incomplete. Check that nothing is truncated.