# URL Decoder and Encoder

Decode a percent-encoded URL back into readable text, or encode text for a URL. Handles UTF-8, tells you which part is malformed, and never uploads anything.

Canonical page: https://filetity.com/url-decoder

## Capabilities

- Free: Yes, with no watermark and no page limit.
- Account required: No. There is no account system.
- Processed on device: Yes. The file is read by your browser and never uploaded. There is no server to send it to.
- Formats: Text in either direction. Decoding handles UTF-8, so accented letters, non-Latin scripts and emoji come back as themselves. You choose whether a + means a space or a plus sign, and whether you are encoding one value or a whole URL.
- Limits: Bounded by what your browser will hold in a text box, which in practice is several megabytes. Input that is not valid percent-encoding is refused with the offending part quoted, rather than half decoded.
- Mobile: Yes, on any modern mobile browser. Large files are limited by the memory the phone gives the browser.
- Offline: Yes, after you have used it once. Your browser keeps what the tool needs, so it then works with no network connection.

## Questions

### Why does my decoded text come back with + signs, or with spaces where plus signs should be?

Because a + means two different things. In a query string sent by a form it means a space. In a path it is a plus sign and nothing else. There is no way to tell which you have from the text alone, so this page asks rather than guessing. Getting it wrong turns a phone number like +1 802 into 1 802 with no warning.

### What is the difference between the two encoding modes?

One value inside a URL escapes the characters that give a URL its structure, so a search term containing a slash or an ampersand cannot break out of the parameter it sits in. A whole URL leaves / ? : @ & = + $ # alone, because those are the structure. Use the first for one parameter, the second for a link you want to stay a link.

### Why does it refuse some input instead of decoding what it can?

Because a half decoded URL looks decoded. If a percent escape is cut short, like %E0%A4%A, or a % is not followed by two hex digits, the tool quotes the part that broke and stops. You get a corrected input rather than output you have to check by hand.

### Is a URL decoder the same as a URL encoder?

They are the two directions of the same thing, and both are on this page. Decode turns %20 back into a space, encode turns a space into %20. The button between the panes carries a result across so you can check a round trip without copying it yourself.

### Can I encode spaces as + rather than %20?

Yes, when encoding one value. A form post writes spaces as +, so there is a switch for it. It is not offered for a whole URL, because a + in a path is a plain plus sign, and writing spaces that way would produce a different address.

## Related tools

- [Base64 decode and encode](https://filetity.com/base64-decode): Decode base64 to text, or encode text to base64, without leaving the page.
- [JSON Formatter and Validator](https://filetity.com/json-formatter): Format, beautify, validate and read JSON, and find the line that broke it.
