Home Tools About Us β™₯ Support Us
πŸ”— URL Encoder / Decoder

Percent-encode &
decode URLs instantly

35+ character sets, a URL parser, query string builder, MIME chunking, and live mode β€” everything runs in your browser.

Plain text
0 chars
Encoded output
0 chars

πŸ” URL Parser

Paste a full URL to break it into its components β€” scheme, host, path, query parameters, and fragment β€” each automatically decoded.

🧩 Query String Builder

Build a properly encoded query string from key/value pairs, or paste one below to break it back into rows.

πŸ“– Percent-Encoding Reference

Per RFC 3986. Unreserved characters never need encoding; reserved characters only need encoding when used outside their structural role.

Unreserved (never encoded)

A–Z a–z 0–9 - _ . ~

Reserved characters β†’ percent-encoded

Other common characters

Supported character sets (35+)

πŸ•˜ Local History

Saved only on this device β€” never uploaded anywhere. Click an entry to reload it.

No history yet. Run a conversion to see it appear here.

How to use every option

  1. Pick a mode β€”Encode turns raw text/URLs into percent-encoded form;Decode reverses it.Smart Detect guesses the right mode for you.
  2. Choose a character set β€” controls which bytes each character maps to before/after percent-encoding. UTF-8 is correct for almost everyone; the legacy sets exist for older systems.
  3. Set the encoding scope (encode only) β€”Component escapes everything except unreserved characters (safe for one query value);Full URI keeps structural characters like/ ? # & = literal (for encoding a whole URL);Custom lets you list extra characters to leave untouched.
  4. Pick a newline separator β€” used when joining/splitting lines for the per-line and chunking options.
  5. Toggle "Encode/decode each line separately" to treat every line as its own independent value instead of one continuous block.
  6. Toggle "Split into 76-character chunks" for MIME (RFC 2045) style output β€” cannot be combined with per-line mode.
  7. Toggle uppercase hex if your system expects%2F instead of%2f.
  8. Toggle "Use + for space" for classic form-encoded (application/x-www-form-urlencoded) output.
  9. Toggle "Skip already-encoded sequences" to avoid corrupting text that contains valid%XX sequences already.
  10. Turn on Live mode to convert as you type, or clickRun Conversion manually.
  11. For files, use Upload to load a text file, and Save as File to download the result.
  12. Use the URL Parser to break a full URL into its scheme, host, path, query parameters, and fragment.
  13. Use the Query String Builder to safely assemble or unpackkey=value&key2=value2 pairs.
  14. Revisit past conversions from Local History, or clear it whenever you like.

Built to replace several URL tools at once

πŸ”€
35+ Character Sets
UTF-8, ASCII, ISO-8859 family, Windows-125x, KOI8, Macintosh, IBM866, UTF-16/32 variants.
🎯
Encoding Scope Control
Component, Full URI, or a custom list of characters to leave literal.
πŸ”
URL Parser
Instantly break any URL into scheme, host, path, query params, and fragment.
🧩
Query String Builder
Build or unpack key/value query strings without hand-encoding anything.
πŸ“¦
MIME Chunking
Split output into RFC 2045-compliant 76-character lines.
πŸ“
File Support
Upload a text file to convert, or download the result directly.
⚑
Live Mode
Real-time conversion as you type β€” no button clicks needed.
πŸ›‘οΈ
Double-Encode Protection
Detects and skips sequences that are already percent-encoded.

Frequently Asked Questions

No. URL encoding only converts characters into a safe transmission format. It provides no security and is trivially reversible.

Space has the hexadecimal ASCII value 20, so percent-encoding represents it as%20. Form submissions sometimes use+ instead β€” toggle that option if needed.

No. Encoding, decoding, parsing, and file conversion all run locally in your browser using the Web Encoding API. Nothing is sent to or stored on our servers.

Decoding supports 35+ character sets natively via the browser's built-in decoder. Encoding is exact for UTF-8, ASCII, and UTF-16/UTF-32 variants; the remaining legacy single-byte sets use a best-effort Latin approximation, since browsers only natively encode to UTF-8.

Component scope (likeencodeURIComponent) escapes every reserved character β€” safe for a single query value. Full URI scope (likeencodeURI) leaves structural characters such as/ ? # & = untouched, for encoding an entire URL.

Without it, re-running the encoder on text that already contains%XX sequences would double-encode the percent sign into%2541, corrupting the value. This option detects valid existing sequences and leaves them untouched.

Many APIs require reserved characters like& or= inside parameter values to be percent-encoded, since unencoded reserved characters are interpreted as URL structure rather than data.

No. Local history is stored only in your browser's local storage on this device. You can clear it at any time.

Related developer tools

Browse Other Categories

β™₯

Support EaseDev Studios

All tools are free. If they've saved you time, consider supporting us.

β˜•

Buy Us a Coffee

A quick one-time gesture that means a lot.

Buy a Coffee β†’
πŸŽ—οΈ

Become a Patron

Support us monthly and help build more tools.

Join on Patreon β†’