URL Encoder and Decoder

Component mode escapes every reserved character — use it for query values.

About URL Encode/Decode

Encode text for safe use in a URL, or decode a percent-encoded string back to readable text. Handles whole URLs and individual components, which need different rules.

URLs may only contain a limited set of characters, so anything else — spaces, ampersands, question marks, accented letters, emoji — has to be percent-encoded. A space becomes %20, an ampersand becomes %26, and so on. Getting this wrong is a classic source of broken links and dropped query parameters.

The distinction between encoding a whole URL and encoding a component matters. In a full URL, characters like : / ? and & are structural and must be left alone. In a single query value they are data and must be escaped, or an ampersand inside a value will be read as the start of the next parameter. This tool offers both modes.

What you can use it for

  • Build a query string containing a value with spaces, ampersands or symbols.
  • Decode a long tracking or redirect URL to see where it actually goes.
  • Fix a link that breaks when it contains a non-English character.
  • Prepare a search term for use in a URL template.
  • Read a percent-encoded value out of a log file or API request.

How it works, step by step

  1. 1

    Pick a direction

    Encoding readable text, or decoding a percent-encoded string.

  2. 2

    Choose full URL or component

    Use component mode for a single query value, and full-URL mode to preserve the structural characters.

  3. 3

    Paste your input

    The result appears as you type.

  4. 4

    Copy or swap

    Copy the output, or swap it into the input to reverse the conversion.

Frequently asked questions

What is URL encoding?

Replacing characters that are not allowed in a URL with a percent sign followed by their hexadecimal byte value. A space becomes %20. It is also called percent encoding.

What is the difference between encoding a URL and a component?

Full-URL encoding leaves structural characters like : / ? # and & intact so the address still works. Component encoding escapes them too, which is what a single query value needs — otherwise an ampersand inside the value looks like a new parameter.

Why does a space sometimes become + instead of %20?

The + form comes from HTML form submissions, where spaces in the query string are encoded as +. Both appear in the wild; %20 is correct for general URL use.

Do I need to encode non-English characters?

Yes. They are encoded as their UTF-8 bytes, so a single accented character can become several percent-escapes. That is expected and decodes back correctly.

Is my input sent anywhere?

No. Everything is processed in your browser and nothing is uploaded.