URL encoder and decoder

Escape text for use in a URL, or turn %20-style escapes back into readable text.

Options

What it does

URLs can only contain a limited set of characters, so spaces, accents, & and = inside values have to be percent-encoded, like %20 for a space. Encode a single value, such as a search term for a query string, or a whole URL while keeping its structure intact. Decode escaped text back to readable characters, with + read as a space for form data if you need it. When you decode a full URL, it’s also split into its protocol, host, path and query parameters, which makes long tracking links much easier to read.

How to use it

How it works
  1. Choose “Encode” or “Decode”.
  2. Type or paste your text. The encoded result appears as you type, and any problem is pointed out with its position.
  3. When encoding, choose “A value” for a single query value or path part (escapes & = / ? too), or “A full URL” to keep the URL’s structure. Tick the + option for HTML form data.
  4. Copy the result, download it, or click “Decode this” / “Encode this” to convert it back.

Common uses

  • Building a query string by hand, for example for an API call or a search link
  • Reading a long redirect or tracking link to see where it really goes
  • Fixing a link that broke because of spaces or non-English characters

Tips

  • Encode each value separately and then join them with & and =; encoding the finished query string would escape the & and = too.
  • A literal % in a value must be written as %25, otherwise decoders treat it as the start of an escape.
  • Forms send spaces as +, but in a URL path a + is just a plus sign. Only read + as a space for query strings and form bodies.

Questions

What’s the difference between “A value” and “A full URL”?

“A value” escapes every character with a special meaning in URLs, such as / ? & = and #, like JavaScript’s encodeURIComponent. “A full URL” leaves those alone so the URL keeps working, like encodeURI.

Why do I get an error when decoding?

Either a % isn’t followed by two hex digits, which usually means a literal % that should have been %25, or the escapes don’t form valid UTF-8 text. The message shows where the problem is.

Does it handle non-English characters?

Yes. Text is encoded as UTF-8, the standard for URLs, so é becomes %C3%A9 and decodes back correctly.

Related tools

  • Base64 encoder and decoder

    Encode text or files to Base64 and decode Base64 back, with proper UTF-8, URL-safe Base64 and file detection. Free, in your browser, no upload.

  • JSON formatter and validator

    Format, validate and minify JSON in your browser. Clear errors with line and column, big numbers kept exact, duplicate keys flagged. No upload.

  • JWT decoder and verifier

    Decode a JWT to read its header, payload and expiry, and check its signature with a secret or public key. Runs in your browser; the token stays private.

  • UUID generator

    Generate UUID v4 or v7 values, one or a thousand at once, with the browser’s secure random generator. Check any UUID’s version and creation time.

  • Hash generator and checksum checker

    Calculate MD5, SHA-1, SHA-256, SHA-384 and SHA-512 hashes of text or files, and check a download against its checksum. In your browser, no upload.

  • Compress images

    Shrink image file size without visible quality loss. Private, fast, free.