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.
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.
- 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 validationInvalid percent escapes are reported instead of silently modified, so you can trust the output when it succeeds.
- No smart guessingThere is no language correction or normalization beyond URL decoding. The goal is a faithful reversal, not rewriting.
- UTF-8 awareCorrectly encoded Unicode characters decode to readable text using standard browser behavior.
- One editor, fast workflowPaste, 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.
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.
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.
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.
