URL Decode

How the URL Decoder Works

Paste URL-encoded text, click Decode, and copy the readable result. This page uses predictable browser behavior and focuses on safe decoding rather than “guessing” what you meant.

%20
Space
%2F
Slash /
%3F
Question ?
%26
Ampersand &

What URL encoding is and why it exists

URLs have a strict character set. When text includes characters that are meaningful to URL syntax (like ?, & ,#, or spaces), those characters can break parsing or change the meaning of a link. URL encoding solves that by turning characters into percent escapes, where a percent sign is followed by two hex digits. For example, a space becomes %20.

When you copy a query parameter from a redirect URL, a tracking link, a server log, or an API request, you often see the encoded form because it is safe to transport. Decoding is the reverse operation. It makes the value readable again so you can inspect it, edit it, or compare it to what you expected.

Practical examples
  • Debug a URL parameter like utm_content that contains spaces or punctuation.
  • Inspect a redirect value returned from OAuth or SSO flows.
  • Read webhook payloads that store encoded fragments.
  • Decode a file path or a search query copied from logs.

Deterministic decoding with decodeURIComponent

This page uses the browser's decodeURIComponent function. That matters because it is consistent and widely implemented. The decoder interprets percent escapes (like %2F or %3D ) and converts them back into the original characters. It also handles multi-byte UTF-8 sequences, which is why it can decode non-ASCII characters when they are encoded correctly.

The important constraint is that decodeURIComponent is strict. If it sees malformed input, it throws a URIError. Malformed input usually means you have an incomplete percent escape (for example, a trailing %2 at the end of the text) or non-hex digits after the percent sign (for example, %ZZ).

This tool wraps decoding in a try/catch so the UI never crashes. If an error happens, the page shows a clear message and keeps the original editor value unchanged. That makes it safe to paste arbitrary strings from logs or unknown sources and iterate until the value decodes cleanly.

  • Strict validation
    Invalid percent escapes are reported instead of silently modified, so you can trust the output when it succeeds.
  • No smart guessing
    There is no language correction or normalization beyond URL decoding. The goal is a faithful reversal, not rewriting.
  • UTF-8 aware
    Correctly encoded Unicode characters decode to readable text using standard browser behavior.
  • One editor, fast workflow
    Paste, decode, copy, done. No separate output field keeps the layout simple and consistent with the other tools.

Common edge cases you should expect

Real-world URLs are messy. The most common surprise is the plus character. In HTML form submissions and some older systems, spaces are represented as + instead of %20. The standard URL decoder does not automatically convert plus to a space because plus is a valid literal character in many URL contexts. If your input comes from a query string generated by a form encoder, replace + with a space first, then run decode.

Another edge case is partial encoding. Sometimes only part of a string is encoded, especially when systems concatenate values incorrectly. That can look like a mix of plain text and escapes. This tool can still decode it, as long as every percent escape is valid. If the decode fails, scan for stray percent signs or truncated sequences.

Finally, be careful with encoded delimiters. Decoding turns %26 back into &, which can change how a URL is parsed if you paste it back into a query string without re-encoding. The safe workflow is: decode only when you are inspecting or editing the value, then re-encode before inserting it back into a URL parameter.

Quick tip for debugging

If you are unsure whether something is encoded, look for the % sign. If you see many percent escapes, decoding usually helps. If you see a single percent with no two hex digits after it, fix that first or delete the stray character.

Privacy and file uploads

This page runs in your browser. Decoding is computed from the current textarea value and does not require a server round trip. If you use the upload button, the file is read locally and the extracted text is placed into the editor. Nothing is transmitted by default.

PDF and DOCX extraction are optional features. If your site build includes the extra dependencies, the tool can extract text from those formats locally as well. Extraction is inherently best-effort: PDFs in particular may produce spacing artifacts because PDFs store positioned glyphs rather than paragraphs. The decoded output is still useful for inspection and copy/paste, but you should expect occasional layout oddities.

What this tool does not do

It does not validate full URLs, rewrite query strings, or interpret HTML entities. It decodes percent-encoded text using the browser's standard rules. If you need to parse an entire URL into components, use a dedicated URL parser or dev tools.

Local

Decode without sending your text anywhere

The conversion logic runs on-device. You choose when to copy the decoded result and where to paste it. This keeps the tool fast, predictable, and privacy-friendly for common debugging and cleanup tasks.

URL Decode FAQ

Common questions about decoding percent-encoded text and how this tool behaves on edge cases.

URL decoding converts percent-encoded sequences back into readable text. For example, %20 becomes a space and %2F becomes a forward slash. This tool uses decodeURIComponent, which follows standard URL percent-encoding rules.
🔗 Related tools

Other Helpful Tools

A few related projects that pair well with this tool. Fast, focused, and privacy-friendly.