EZ
EZ2Conv

URL Encoder/Decoder

Encode and decode URLs and text for web usage directly in your browser. Supports Standard, Component, and Form encoding types with full Unicode support and no server upload.

Settings

14px
0/10000
Result will appear here...

How to Use

  1. Enter or paste plain text to encode, or URL-encoded text (with percent signs) to decode back
  2. Select your encoding type (Standard, Component, or Form) and click Encode or Decode
  3. Copy the converted result from the output area using the one-click copy button
  4. Use the mode switch to seamlessly toggle between encoding and decoding with encoding statistics
  5. Bidirectional URL encoding and decoding
  6. Full Unicode and special character support
  7. Real-time validation with error messages
  8. No server upload - completely client-side processing

Understanding URL Encoding and Percent-Encoding

What this tool does

A URL can only carry a limited set of characters safely. Anything outside the unreserved letters, digits, and a handful of symbols must be rewritten as percent-encoding — a % sign followed by the byte value in hexadecimal. This tool turns ordinary text into that encoded form, and it also runs the reverse, turning sequences like %20 and %26 back into the characters they stand for.

Three encoding modes cover the situations you actually meet. Standard encoding mirrors JavaScript's encodeURI and is meant for a whole URL, so structural characters like :, /, ?, and # are left intact. Component encoding mirrors encodeURIComponent and escapes those structural characters too, which is what you want for an isolated piece such as a parameter value. Form encoding follows the application/x-www-form-urlencoded rule a browser uses when it submits a form.

When to use it

Reach for component encoding whenever a value goes inside a query string — a search term, an email address, or a redirect target that itself contains ?, &, or =. Encoding it stops those symbols from being read as URL structure and breaking the link. Standard encoding suits a full address you are cleaning up, where spaces or accented letters slipped in but the slashes and question mark must keep their meaning. Form encoding matches the body of a POST request or a hand-built form payload, where spaces are written as + rather than %20. Decoding is just as common: pasting an encoded link from a log, an analytics report, or a redirect chain and reading where it actually points.

A concrete example

Take the text hello world & café. Under component encoding a space becomes %20, the ampersand becomes %26, and café — because é is stored as two UTF-8 bytes — becomes caf%C3%A9. Under form encoding that same space is written as +, giving hello+world. The live statistics show how many characters changed and what share of the string was encoded, which is a quick way to spot text that was already encoded once.

Notes and edge cases

Reserved characters (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) have meaning inside a URL, so Standard mode deliberately leaves them alone while Component mode escapes them; choosing the wrong mode is the usual cause of a broken query parameter. Encoding is defined over UTF-8 bytes, so any non-ASCII character expands into several %XX groups. Avoid encoding a URL twice — a stray % that is already part of an escape turns into %25 and the link stops resolving. When in doubt, decode first to check whether the text is raw or already escaped.

Frequently Asked Questions

All three encoding modes — Standard, Component, and Form — plus decoding and the live character statistics are available without limits or fees. Nothing is held back behind a paid tier.
Encoding and decoding run through your device's own JavaScript, so URLs, query values, tokens, or form payloads you paste are processed locally and never transmitted to a server.
Paste text or an encoded string, pick a mode, and the result appears at once with its statistics. No email, registration, or sign-in step stands between you and the output.
Standard (encodeURI) is for a whole URL and keeps structural characters like :, /, ?, and # untouched. Component (encodeURIComponent) escapes those too, which is right for a single query value or fragment. Form encoding follows application/x-www-form-urlencoded and writes spaces as + for form submissions.
It depends on the mode. Standard and Component encoding write a space as %20, while Form encoding uses + because that is the convention for application/x-www-form-urlencoded bodies. Both decode back to a normal space.
Non-ASCII text is first converted to its UTF-8 bytes, and each byte becomes a %XX group — so an accented é becomes %C3%A9 and an emoji becomes a longer four-byte sequence. Decoding reverses that back to the original characters.