New to Rust? Grab our free Rust for Beginners eBook Get it free →
Online URL Decoder: Decode Encoded URLs

Some URLs write characters as a percent sign followed by two hexadecimal digits, which can make a value hard to read. URL decoding changes those percent escapes back into characters.
This article walks through decoding a value and checking how plus signs or repeated encoding affect the result.
TL;DR: Decode an Encoded URL
Paste the percent-encoded text into the decoder, select Decode URL, and read the result, checking whether plus signs represent spaces in the data you have.
- Use the tool for encoded text, a query value or a URL you need to inspect.
- A sequence such as %20 represents a byte written with hexadecimal digits.
- Form-style query data often uses plus for a space. Elsewhere, plus may be literal.
- Decoding text does not tell you whether the resulting URL should be used unchanged.
What Is URL Decoding?
URL decoding converts percent-encoded bytes back into characters. A percent escape has a percent sign followed by two hexadecimal digits, such as %20 for a space or %26 for an ampersand.
Those digits represent bytes, and UTF-8 can encode a character such as é with multiple escapes: %C3%A9.
In a URL, the question mark introduces the query, ampersands divide its parameters, and a hash marks the fragment. This structure matters when an encoded value contains one of those same characters, because decoding it too early can make data look like a URL separator.
Use the CodeForGeek online URL encoder to prepare text for a link, while this page reads values you received.
How to Use the Online URL Decoder
The page presents an encoded-text input and a Decode URL control. Copy one value to begin.
Step 1: Copy the encoded text
Copy the encoded section from a URL, request, log or form value. For example, q=red%20shoes%26size%3Dlarge places escaped symbols within a query value.
Step 2: Paste it into the input box
Paste the copied text into the box labeled Encoded URL/Text.
Step 3: Select Decode URL
Select Decode URL to convert valid percent escapes into their characters. An input such as New%20York%20%26%20Co should read as “New York & Co” after decoding.
Read the decoded result before copying it.
Copy the decoded text you need. Save the original request for comparison when investigating a service-specific result.
Use Clear All before entering unrelated text on a shared screen. That clears the visible fields, but it does not establish how the page or browser handles stored data.
For debugging, record the input component and the decoding rule alongside the result. This makes it possible to distinguish a malformed escape from a difference between form data and a URL path. Avoid changing unrelated parameters while testing one value.
URL Decoder Edge Cases to Check
| Input or situation | How to read it | What to check |
|---|---|---|
| Escape %20 | Percent-encoded space byte | Usually a space in the decoded text. |
| Raw plus in form-style data | Often a space in application/x-www-form-urlencoded data | Do not assume every plus in every URL is a space. |
| Escape %2B | Encoded plus character | Represents a literal plus character. |
| Escape %26 in a parameter | Encoded ampersand | Check its role before rebuilding the URL. |
| Incomplete escape such as %2 | Malformed percent sequence | Find the source of the truncated value. Avoid guessing missing digits. |
| Escape %2520 | Percent sign encoded before the digits 20 | It may indicate another encoding layer. Confirm before decoding again. |
A raw plus may remain a plus under percent decoding, while form-urlencoded parsing treats it as a space.
A decoder can return an error when a percent escape lacks two hexadecimal digits or the byte sequence is invalid for the expected text encoding. Recopy the original value instead of guessing missing characters. If the error persists, check the source application’s encoding documentation.
For example, %2G contains G, which is outside the hexadecimal digits 0–9 and A–F. Compare the copied text with its source to find truncation.
Double encoding stores a percent sign as data.
HTML entity decoding handles named entities, while URL decoding handles percent escapes such as %26. Choose the operation for the input format. Neither validates input or acts as a security filter.
Encode Files to URL-Encoded Format
For a text file, decide which text belongs in the value.
- Text file: confirm character encoding, then encode the intended text value.
- Binary file: follow the service’s documented upload format.
Overview of Decoder Options
| Task | Suitable approach | Check |
|---|---|---|
| Inspect a short, non-sensitive value | Online text decoder | Confirm the returned text and source context. |
| Parse a complete address in code | Language URL parser | Read the path, query and fragment as separate components. |
| Decode form-submitted fields | Form-urlencoded parser | Confirm its plus-sign and character-encoding rules. |
| Recover file contents | Format-specific file or binary tool | Validate the original bytes or application format. |
A browser tool suits one-off debugging. Production code benefits from a parser that returns named URL components, which are simpler to log and validate separately.
Advanced Options to Check
Check these advanced settings against the source data:
- Character encoding: verify the documented encoding for non-ASCII characters.
- Decode depth: use repeated decoding only when the producer documents it.
If a needed control is absent, use a local library or the application’s documented parser.
Whether an online decoder is free or appropriate for your work depends on the service’s published terms and your organization’s rules. This page’s interface does not establish a price, retention policy or security certification. Check the service information directly before using it for work data.
Use an Online Decoder Safely
| Risk | Safer choice |
|---|---|
| Private values | Use only an approved service or a local parser. |
| Decoded destination | Inspect its host before opening the link. |
Decoding does not validate a destination or make a link safe to open. Inspect the host and path independently before following a link. For confidential values, choose a local parser rather than an unapproved online service.
When comparing two outputs, normalize only the part required by the task. Keep a copy of both the original input and the decoded text in a local test case, then verify the result against the application that consumes it.
A decoded URL may contain characters that need escaping in HTML, shell commands or JSON. Apply the destination language’s quoting rules before embedding the text.
Before sharing a decoded example in a bug report, replace account-specific values with neutral sample text.
When a service accepts the decoded value but later changes it, compare the parsed components at each boundary. A small test case with one parameter at a time helps identify where the interpretation diverges.
When a decoded value is used in a redirect or callback parameter, inspect the destination independently. A readable address can still point to an unexpected host, and decoding alone does not establish that the application accepts it. Follow the application’s redirect-validation rules and test with a harmless destination in a development environment.
For support requests, include the operation and a short sample rather than a live account link.
Conclusion: Decode the Value in Its URL Context
An online URL decoder makes percent-encoded text readable. Decode the value you need and compare the result with its source before using it.
For the related coding task, read the JavaScript URL guide. For the opposite transformation, use the URL encoder.
FAQ
These answers cover the decoding questions that commonly come up when reading URL values.
What does URL decoding do?
URL decoding changes percent-encoded bytes such as %20 back into readable characters, using the relevant text encoding.
Does a plus sign mean a space in a URL?
A plus sign represents a space in form-urlencoded data, but it can be a literal plus in other URL contexts. %2B represents a plus character.
Why does a URL decoder show an error?
A decoder can reject incomplete percent escapes or byte sequences that are not valid in the expected character encoding. Recapture the original value rather than guessing missing digits.
Should I decode a URL more than once?
Only when you know the value was encoded more than once. Repeated decoding can change literal percent-encoded text into different data.




