URL Encoder/Decoder

Encode and decode URLs and text for web usage directly in your browser, with results that update as you type. Supports Standard and Form encoding, full Unicode, and no server upload.

Mode

0 / 10,000

Type or paste the text to encode — the URL-encoded text appears as you type. Switch to Decode to turn %20-style text back into readable text.

Result

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. Pick Encode or Decode above the input — the result appears as you type. Open Settings to choose the encoding type (Standard or Form)
  3. Copy the converted result from the output area using the one-click copy button
  4. Switch between Encode and Decode at any time — a valid result moves into the input. A summary line tells you how many characters were encoded, or how the character count changed when decoding

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.

Two encoding types cover the situations you actually meet. Standard encoding uses JavaScript's encodeURIComponent: every character except letters, digits, and - _ . ! ~ * ' ( ) is escaped, including structural characters like :, /, ?, #, and &, 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, and writes a space as + instead of %20.

When to use it

Reach for Standard 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. Because every structural character is escaped, encode the pieces of an address one at a time — encoding a finished URL would also escape its slashes and question mark, which is only right when that URL is itself a value inside another one. 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 Standard 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. A summary line counts how many characters changed and what share of the text that is.

Notes and edge cases

Reserved characters (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) have meaning inside a URL. Both types escape : / ? # [ ] @ $ & + , ; = and leave ! ' ( ) * as they are, so encode a value before it goes into a query string, not the finished URL. 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

Both encoding types — Standard and Form — plus decoding and the changed-character summary are available without limits or fees. Nothing is held back behind a paid tier.