URL Decode

Decode percent-encoded URL text back to plain text.

Encoded URL
Plain Text
output appears here

Related Tools

Documentation

What is URL Decode?

URL Decode reverses percent-encoding, turning %XX hex sequences back into their original characters — so %20 becomes a space and %26 becomes &. It's the tool you reach for when you've copied a query string out of a browser address bar or server log and want to read the actual values.

How it works

This tool calls the browser's native decodeURIComponent(), which converts each %XX sequence back to a byte and reassembles multi-byte UTF-8 sequences into the correct Unicode character. If the input contains a malformed sequence — a stray % not followed by two hex digits, or a broken multi-byte UTF-8 sequence — the call throws a URIError, which this tool catches and reports as "Invalid percent-encoding sequence" instead of returning corrupted text.

Features

  • Matches JavaScript's decodeURIComponent exactly
  • Correctly reassembles multi-byte UTF-8 percent sequences into Unicode text
  • Reports malformed input instead of silently mangling it
  • Works on a full URL, a query string, or a single value — all decode the same way

Example

Input: https%3A%2F%2Fdevformats.com%2Fsearch%3Fq%3Djson%20formatter

Output:

https://devformats.com/search?q=json formatter

Edge cases

A lone % in the input (one that isn't part of a valid two-digit hex escape, like a literal percent sign in "50% off") isn't valid percent-encoding and throws — text containing a real % character needs it encoded as %25 first. Decoding a value that was never actually encoded is harmless as long as it has no stray % characters — it passes through unchanged. Decoding a value twice when it was only encoded once will incorrectly turn literal %20 text into a space where none was intended.

Best practices

Decode once, at the point where you need the human-readable value — most HTTP libraries and web frameworks already decode query parameters for you automatically, so manual decoding is mainly for debugging raw request logs or one-off inspection. If decoding fails, check for a stray % before assuming the whole string is corrupt.

Spec

RFC 3986 — Uniform Resource Identifier (URI): Generic Syntax

Frequently Asked Questions

What if the input isn't valid percent-encoding?

The tool reports "Invalid percent-encoding sequence" rather than silently producing garbled output.

Does this decode a full URL, or just a component?

It decodes any percent-encoded text — a full URL, a single query parameter value, or a path segment all work the same way.

Is my data uploaded anywhere?

No — decoding runs entirely in your browser.