URL Encoder / Decoder

Percent-encode strings so they're safe inside URLs — or turn %20-riddled strings back into readable text.

Why URLs need encoding

URLs only allow a limited set of characters. Everything else — spaces, &, ?, #, non-ASCII text — must be percent-encoded: the character's UTF-8 bytes written as %XX hex pairs. A space becomes %20, & becomes %26, and নমস্কার becomes a run of %E0%A6… bytes. Skip the encoding and your query parameter silently truncates at the first & — one of the classic works-until-it-doesn't bugs.

Component mode vs full-URL mode

The two modes mirror JavaScript's two functions. Component mode (encodeURIComponent) escapes every reserved character — use it for a value you're placing inside a query string. Full-URL mode (encodeURI) leaves URL structure like :/?#&= intact — use it when encoding an entire URL without breaking it. Encoding a full URL with component mode (or vice versa) is the most common URL-encoding mistake; this tool makes the difference explicit.

FAQ

What's the difference between %20 and + for spaces?

Both mean "space", but + is only valid in the query-string part of a URL (a convention from HTML form encoding, application/x-www-form-urlencoded). %20 works everywhere. The decoder here accepts both.

Why does my decoded string throw a "malformed URI" error?

A % in percent-encoded text must be followed by exactly two hex digits. A stray % (say, from "100% free" pasted as-is) breaks decoding — that text was never actually encoded, so there's nothing to decode.

Is my data uploaded anywhere?

No — encoding and decoding run entirely in your browser using the standard JavaScript functions. Nothing is transmitted or logged.

Built by Abasthan Cloud

Free tools are just the start

Deploy your next app on bare-metal cloud with per-second billing — your first app is free, no credit card required.