URL Encoder / Decoder

Type plain text on the left — the encoded URL appears on the right. Type on the right — the decoded text appears on the left. Everything runs locally in your browser.

Free two-way online URL encoder and decoder. Supports two modes: encodeURIComponent (encodes all special characters, for query parameter values) and encodeURI (preserves reserved chars :/?#[]@, for full URLs).

Batch mode processes each line independently — handy for bulk-encoding lists of URLs or query parameters. All computations happen locally in the browser, no data is sent to a server.

How to use it

  1. Type plain text on the left — the URL-encoded version appears on the right. Paste an encoded string on the right — the decoded text appears on the left.
  2. Pick the mode. encodeURIComponent encodes everything except letters, digits and a few safe characters and is right for parameter values. encodeURI leaves :/?#&= intact and is right for whole addresses.
  3. Turn on line-by-line mode to process a list of URLs or parameters — each line is encoded on its own.

When it helps

  • Debugging requests: read what is really in a query string when the log shows %D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82.
  • Building links: safely put text with spaces, non-Latin letters, & or # into a parameter.
  • Working with APIs: prepare a redirect_uri, callback or filter value for the address bar.

Frequently asked questions

What is the difference between %20 and a plus sign?

Both mean a space, but the plus is only valid in a form query string (application/x-www-form-urlencoded). In a path, and in general, use %20.

Why does non-Latin text turn into such long sequences?

Each Cyrillic letter takes two bytes in UTF-8 and each byte is written as %XX — six characters per letter.

What if the decoder reports an error?

The string contains an incomplete or invalid %XX sequence. Check whether the link was truncated or encoded twice.

Related tools