# URL encoder / decoder — percent-encoding, no upload

> URL-encode or decode text and query parameters (percent-encoding) in your browser. Nothing is uploaded — the text stays in the tab.

Percent-encode text for safe use in URLs, or decode an encoded string back to readable text. It works in the browser with no upload.

URLs can only contain certain characters, so anything else must be percent-encoded. Getting this right prevents broken links and query parameters that don't parse — and decoding lets you read an encoded URL.

To build a full query string from key/value pairs, use the query string builder; to parse a URL apart, the URL parser.

## How to

1. **Paste text.** Paste the text or URL component to encode or decode.
2. **Choose direction.** Encode to percent-encoding or decode it back.
3. **Copy.** Copy the result.

## FAQ

### What's the difference between encodeURI and encodeURIComponent?

encodeURIComponent escapes more characters (including & = ? /) and is right for a single query value; encodeURI leaves URL structure intact for a whole URL. The tool covers both needs.

### Why do spaces become %20 or +?

In the path, a space is %20; in a query string (form-encoded), it's often +. Encoding correctly prevents broken links and mis-parsed parameters.

### Is my text uploaded?

No. Encoding is local string work, so nothing leaves the tab.


## Related tools

- [Query string](https://www.safepaper.app/dev/query-string)
- [URL parser](https://www.safepaper.app/dev/url-parser)
- [Base64](https://www.safepaper.app/dev/base64)
- [HTML entities](https://www.safepaper.app/dev/html-entities)

---

Canonical HTML: https://www.safepaper.app/dev/url-encoder
Markdown: https://www.safepaper.app/dev/url-encoder.md

There is no upload endpoint — your files are processed in this browser tab. Open your network tab and check.
