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
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.
HTML form submissions encode spaces as plus signs. Use the query decode button and the plus signs are turned back into spaces before decoding.
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.