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 situationHow to read itWhat to check
Escape %20Percent-encoded space byteUsually a space in the decoded text.
Raw plus in form-style dataOften a space in application/x-www-form-urlencoded dataDo not assume every plus in every URL is a space.
Escape %2BEncoded plus characterRepresents a literal plus character.
Escape %26 in a parameterEncoded ampersandCheck its role before rebuilding the URL.
Incomplete escape such as %2Malformed percent sequenceFind the source of the truncated value. Avoid guessing missing digits.
Escape %2520Percent sign encoded before the digits 20It 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

TaskSuitable approachCheck
Inspect a short, non-sensitive valueOnline text decoderConfirm the returned text and source context.
Parse a complete address in codeLanguage URL parserRead the path, query and fragment as separate components.
Decode form-submitted fieldsForm-urlencoded parserConfirm its plus-sign and character-encoding rules.
Recover file contentsFormat-specific file or binary toolValidate 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

RiskSafer choice
Private valuesUse only an approved service or a local parser.
Decoded destinationInspect 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.

Aditya Gupta
Aditya Gupta

Aditya Gupta is a founding member and editor at CodeForGeek. He first found his way into tech by reading articles, and now writes approachable guides to Node.js security, authentication, AI tools, coding agents, and web scraping.

Articles: 529