URL Encoder & Decoder

Encode a URL or decode one — and see exactly which escape is malformed.

Runs in your browser Developer No signup
Ready · local only Run with Ctrl + Enter

Component escapes reserved characters. Full URL keeps ://, ? and & in place.

ResultWaiting for input
The encoded result appears here.

Nothing is uploaded; the work happens in this tab.

Actions for this tool. The full controls are above.

01 Capability

What it does

Small details that make the job quicker.

  • Two honest modes: encode a URL component, or encode a complete URL without breaking :// and ?.
  • Decodes percent escapes with a clear message when a % is not followed by two hex digits.
  • Handles spaces, ampersands, hashes, emoji and non-Latin text without uploading anything.
  • Swap, sample, copy and clear, plus a character count so you can see what changed.
  • Runs offline once loaded and makes no request with the text you paste.

02 Questions

Questions

Short answers, no small print.

When should I use Component instead of Full URL?

Use Component for a search term, a query value or a path segment, because every reserved character must be escaped there. Use Full URL when you are encoding a whole address and want ://, ?, & and # to keep their structural meaning.

Why does a space become %20?

Spaces are not allowed in a URL. Percent-encoding writes the byte as a percent sign plus two hexadecimal digits, so a space becomes %20. Some form systems use + instead, but %20 works everywhere.

What is a malformed percent escape?

A % that is not followed by exactly two hex digits, such as %2 or %ZZ. The tool stops and names the problem instead of returning a half-decoded string.

Why did decoding fail on a value that looks encoded?

The escapes may describe bytes that are not valid UTF-8. That happens with binary data or with text encoded in another character set. The error says so instead of showing replacement characters.

Is the URL sent anywhere?

No. Encoding and decoding use the browser's built-in encodeURIComponent, encodeURI and their decode partners. Astra never receives the text.

Private by default URL encoding runs locally in this tab with built-in browser functions. Your text is never uploaded, logged or stored by Astra. Read the privacy note.