Free — no sign-up
URL Encoder & Decoder
Percent-encode or decode a URL component without guessing the rules.
Runs entirely in your browser. Nothing you enter is sent to MASK.
The difference, on the same text
- Input
- https://mask.pk/go?q=a b&r=1
- One value
- https%3A%2F%2Fmask.pk%2Fgo%3Fq%3Da%20b%26r%3D1
- A whole URL
- https://mask.pk/go?q=a%20b&r=1
Runs as you type, in this browser. Up to 200,000 characters.
0 characters
Questions
- Which setting do I want?
- If you are handling one value — a search term, a redirect target, an email address that is going after ?next= — choose 'One value'. If you are handling a complete link and just want its spaces and accents made safe, choose 'A whole URL'. The worked example on the page shows the same text under both.
- Why did my link stop working after I encoded it?
- Almost always because a whole URL was encoded with the 'One value' setting, which turns :// into %3A%2F%2F. That is correct when the link is itself a parameter of another link, and wrong when it is the link you want someone to open. Switch to 'A whole URL' and encode again.
- Does a + become a space?
- No. This tool treats + as a literal plus sign in both directions. Plus-means-space is a rule of HTML form submissions, not of URLs, and applying it here would quietly corrupt values that legitimately contain a plus, such as C++ or a base64 string. If your text came out of a form body, replace + with a space yourself before decoding.
- Why does it say my input is not valid percent-encoding?
- A % in a URL must be followed by exactly two hex digits, so %20 is valid and %2, %ZZ or a lone % at the end are not. The message names the character position so you can find it. If you meant a literal percent sign, it should be written %25.
- Is anything I paste sent to MASK?
- No. The encoding runs in your browser with the platform's own URI functions. Nothing is uploaded, logged or stored, and the tool works with the network disconnected.