Skip to content
BeeToolsFast. Private. Free.

URL Encoder & Decoder

Runs in your browser

Percent-encode and decode URLs and query parameters, with the right escaping for each.

Developer Tools

A single value — escapes / ? : @ & = + $ , # so it is safe inside a parameter.

Swap and reuse the current output as input.

Plain text

Encoded

Nothing to show yet

Type or paste on the left and the result appears here as you go.

Which mode? If you are encoding one value to drop into a query string — a search term, a redirect target, an email address — choose a value in a URL. If you are encoding an address that is already a URL and only needs its spaces and accents fixed, choose a whole URL. Using the wrong one either breaks the URL’s structure or leaves a delimiter unescaped, and both fail in ways that are hard to spot.

Your data never leaves your device

This tool runs entirely in your browser. Nothing you enter is uploaded, stored or logged by BeeTools.

How to use the url encoder & decoder

  1. Choose encode or decode

    Encode turns readable text into percent-escapes; decode reverses it. If you are not sure which you have, paste it into decode — invalid input is reported rather than mangled.

  2. Pick what you are converting

    Choose "a value in a URL" for a single parameter such as a search term or redirect target. Choose "a whole URL" when the input is already an address and only needs its spaces and accents fixed.

  3. Read the result and the breakdown

    The output updates as you type, with a count of how many characters were affected. If the input parses as a URL, its parts are listed underneath with values decoded.

  4. Copy, or swap and verify

    Copy takes the result to your clipboard. Swap feeds it back as input, which is the quickest way to confirm a round-trip is lossless.

Features

  • Both encoders, chosen explicitly

    Switch between encoding a single value and encoding a whole URL, with the difference explained.

  • Swap direction in one click

    Feed the output straight back in to verify a round-trip without retyping anything.

  • URL breakdown

    Paste a full URL and see its scheme, host, path, fragment and each query parameter decoded.

  • Strict decoding

    Malformed escapes are reported precisely rather than producing quietly corrupted output.

  • Correct for every language

    Characters are encoded as UTF-8 octets, so Arabic, Chinese and emoji all round-trip exactly.

  • Nothing is transmitted

    Encoding happens in this tab, which matters when a URL contains a token or a signed link.

About this tool

URLs can only carry a restricted set of characters. Everything else — spaces, accented letters, ampersands, emoji — has to be percent-encoded, written as a "%" followed by the hexadecimal value of each byte. That is why a space becomes %20 and a bee emoji becomes %F0%9F%90%9D.

JavaScript ships two encoders for this and they are not interchangeable, which is the source of most URL bugs. encodeURIComponent escapes the reserved delimiters — / ? : @ & = + $ , # — because inside a query parameter those characters would be read as structure rather than as content. encodeURI leaves them alone, because when you are encoding an entire URL those same characters are exactly what gives it its shape. Use the first for a value, the second for an address; use the wrong one and you either break the URL or silently truncate a parameter at the first ampersand.

This tool makes that choice explicit rather than guessing, and shows what changed. Decoding is strict: a malformed escape like a bare "%" or a truncated "%A" is reported clearly instead of producing mangled output, which matters because that particular failure is common in copied URLs and easy to misread as a data problem.

Everything runs in your browser. URLs frequently carry session tokens, signed download links and internal hostnames, so this is one of the tools where local processing is worth more than convenience.

  • Both encoders, chosen explicitly. Switch between encoding a single value and encoding a whole URL, with the difference explained.
  • Swap direction in one click. Feed the output straight back in to verify a round-trip without retyping anything.
  • URL breakdown. Paste a full URL and see its scheme, host, path, fragment and each query parameter decoded.
  • Strict decoding. Malformed escapes are reported precisely rather than producing quietly corrupted output.
  • Correct for every language. Characters are encoded as UTF-8 octets, so Arabic, Chinese and emoji all round-trip exactly.
  • Nothing is transmitted. Encoding happens in this tab, which matters when a URL contains a token or a signed link.

Frequently asked questions

What is the difference between encodeURI and encodeURIComponent?

encodeURIComponent escapes the reserved delimiters / ? : @ & = + $ , # as well as unsafe characters, which is correct when the text is a value going inside a URL. encodeURI leaves those delimiters intact because it assumes you are encoding a complete URL where they are structural. Encoding a whole URL with encodeURIComponent produces an unusable string; encoding a parameter value with encodeURI leaves ampersands unescaped, which truncates your value at the first one.

Why is a space sometimes %20 and sometimes +?

Both appear in the wild. %20 is standard percent-encoding and is valid anywhere in a URL. The plus sign comes from the older application/x-www-form-urlencoded format used by HTML form submissions, where "+" means a space and a literal plus must be written as %2B. This tool always produces %20, which is safe in every position; if you are building a form body specifically, convert the spaces afterwards.

Why did my decode fail?

Percent-encoding requires a "%" to be followed by exactly two hexadecimal digits. A bare percent sign — common in text like "100% sure" — or an escape truncated when the URL was copied will both fail. The error is deliberate: silently ignoring a broken escape would hand you output that looks fine and is subtly wrong.

Which characters never need encoding?

The unreserved set: A–Z, a–z, 0–9, and the four marks hyphen, underscore, full stop and tilde. Everything else is either reserved with structural meaning or outside the safe ASCII range, and encoding it is either required or harmless.

How are non-English characters handled?

They are converted to UTF-8 bytes first, then each byte is percent-encoded. That is why one Arabic or Chinese character becomes several escapes, and why an emoji becomes four. Decoding reverses both steps, so the round-trip is exact.

Is my URL sent anywhere?

No. The conversion uses built-in browser functions and runs entirely on your device. That matters more here than for most tools, because URLs routinely carry session identifiers, password-reset tokens and signed links that should never be pasted into a remote service.

Tools that pair well with this one.