Free tool

URL Encoder and Decoder

Percent-encode and decode URLs, paths and query strings, with a parsed breakdown.

URL breakdown

Paste a URL or a fragment of one to percent-encode it, or paste encoded text to read it back. When the input parses as a full URL, you also get a breakdown of its parts and its query parameters decoded into a list. Everything runs in your browser tab.

There are two encoders and they are not interchangeable. Component encoding escapes the reserved characters that carry meaning in a URL, so : / ? # & = all become percent codes, which is what you want when putting a value into a query parameter. Full-URL encoding leaves that punctuation intact so the address still works, and only escapes spaces and other unsafe characters. Using the wrong one is why a link with an ampersand in it breaks.

How to use it

  1. Paste your URL or encoded text into the input.
  2. Choose whether to treat it as a component value or a whole URL.
  3. Read the result, and the parsed breakdown when the input is a full URL.
  4. Copy the output, or press Swap to send it back through the other way.

Frequently asked questions

What is the difference between the two encoders?

Component encoding escapes reserved URL punctuation such as : / ? # & = and is what you want for a single query value. Full-URL encoding preserves that punctuation so the address remains usable, escaping only unsafe characters like spaces. Pick component when encoding a value, whole URL when encoding a link.

Why is a space sometimes %20 and sometimes a plus?

Percent-encoding uses %20. The plus sign comes from the older form-submission format, application/x-www-form-urlencoded, which is still what most servers expect from an HTML form body. This tool decodes both, so a plus in an encoded query string is read as a space.

Why does my decode fail with a malformed URI error?

A percent sign must be followed by two hexadecimal digits. A bare % or a truncated sequence like %E4%B is invalid, and so is a percent pair that does not form valid UTF-8. The error message here says which it was.

Do I need to encode non-Latin characters?

For transmission, yes: they are encoded as UTF-8 bytes, so a single character often becomes several percent codes. Browsers display the readable form in the address bar while sending the encoded version, which is why a URL you copy can look different once pasted.

The desktop version

URL Encoder and Decoder in Toolbelt

This page does the job in a browser tab. Toolbelt is the same tool as a native Mac app, plus the things a web page cannot do.

Toolbelt

Tools

Input
{"name":"Holizmi","tools":["json","jwt","base64"],"live":true}
Output
{
  "name": "Holizmi",
  "tools": [
    "json",
    "jwt",
    "base64"
  ],
  "live": true
}
Valid JSON. 4 keys, 96 characters.K to switch tools
  • Decode whatever URL is on your clipboard with one shortcut
  • Decode a whole log file of encoded URLs at once
  • Inspect query parameters as an editable table
  • Works with no connection at all

Coming soon·$29 one-time purchase

One email when it ships. Nothing else, ever.

Everything Toolbelt does

macOS 14+ · Mac App Store

Free tools, forever.

These stay free and run in your browser. The paid Mac app is for when you want them native, offline and on a keyboard shortcut.