URL Encoder / Decoder

Percent-encode text for use in a URL or turn %20 and %C3%A9 back into readable characters — and take any URL apart into its components and query parameters.

  • Live result
  • URL parser
  • Query editor
  • Nothing uploaded
Mode

Use the first option for a value that goes inside a URL, the second for a complete address.

URL parser and query editor

Enter a full URL to see its parts and edit its query parameters.

How it works

How to encode or decode a URL

Three steps, no button to press.

  1. 1

    Choose Encode or Decode

    Encode makes text safe for a URL. Decode turns percent sequences back into characters.

  2. 2

    Paste your text

    The result appears while you type. For encoding, pick whether it is a single value or a complete address.

  3. 3

    Copy the result

    Copy it, download it, or send it back to the input to continue. Full URLs are also split into their parts below.

Why ToolCMB

More than a %20 converter

Built for the cases where the simple tools give wrong output.

The right mode for the job

Component mode for a value inside a URL, URL mode that keeps : / ? & = #, form mode with + for spaces, and a mode that encodes every byte.

Double-encoding unwrapped

Text like %2520 was encoded twice. One switch decodes repeatedly until it is clean and tells you how many rounds it took.

Never fails on bad input

A stray % or broken UTF-8 does not produce an error: the valid parts are decoded and the broken sequences are counted.

URL parser

See scheme, host, port, path, query string and fragment of any address, each with its own copy button.

Query string editor

Change, add or remove parameters in a table and get a correctly encoded URL back.

Lists, line by line

Encode or decode a whole column of values at once, one result per line.

Instant results

The output updates while you type. There is no button to wait for and no page reload.

Private by design

Everything runs in your browser. What you type or open is not sent to a server.

What URL encoding is and when you need it

A URL may only contain a limited set of ASCII characters. Everything else — spaces, accented letters, emoji, and characters with a special meaning such as &, ?, # or / — has to be written as percent-encoding: a % followed by the two-digit hexadecimal value of each UTF-8 byte. A space becomes %20, é becomes %C3%A9.

The most common mistake is using the wrong scope. If you encode a complete URL as if it were a single value, the slashes and question marks are escaped and the link breaks. If you put a value into a query string without encoding it, an & or = inside the value silently splits it into two parameters. Rule of thumb: encode each value on its own with component encoding, then assemble the URL.

HTML forms use a slightly different format, application/x-www-form-urlencoded, in which a space is written as +. That is why a plus sign in a decoded query string sometimes has to be read as a space — and why a real plus must be sent as %2B. The “Treat + as a space” switch covers exactly this case.

Characters you meet most often

CharacterEncodedWhy it must be encoded in a value
Space%20 (or + in forms)Not allowed in a URL at all
&%26Separates query parameters
=%3DSeparates a parameter name from its value
?%3FStarts the query string
#%23Starts the fragment; the rest is not sent to the server
/%2FSeparates path segments

Tips

  • Sending binary data or a token in a URL? Encode it with the Base64 Encoder first and choose the URL-safe variant.
  • Inspect the claims of a token found in a callback URL with the JWT Decoder.
  • A decoded query string often contains JSON — make it readable with the JSON Formatter.
  • Turn a finished link into a scannable code with the QR Code Generator.
FAQ

Frequently asked questions

Can’t find your answer? Contact us — we reply quickly.

What is the difference between encodeURI and encodeURIComponent?

encodeURI is for a whole address: it leaves the characters that structure a URL (: / ? # & =) untouched. encodeURIComponent is for one value inside a URL and escapes those characters too. In this tool they are the options “Whole URL” and “Text or parameter value”.

Should a space be %20 or +?

%20 is valid everywhere in a URL. + means a space only in query strings sent by HTML forms. When in doubt use %20.

Why does my decoded text still contain % signs?

It was probably encoded twice, so %20 became %2520. Switch on “Decode repeatedly”. If single % signs remain, they were literal percent signs that were never encoded.

Does it support Unicode and emoji?

Yes. Text is converted to UTF-8 before encoding, as the URL standard requires, and decoded from UTF-8 again.

What does the RFC 3986 option do?

JavaScript’s encoder leaves ! ' ( ) * unescaped. RFC 3986 reserves them, and some APIs and signature schemes such as OAuth 1.0 expect them encoded. The option escapes them as well.

Is my data sent to a server?

No. The tool runs entirely in your browser. Your input is not uploaded, logged or stored on our servers.

More free developer tools

Encode, format, test, convert and generate — small tools that run in your browser and keep your data on your device.

Browse all tools