Startseite URL Decoder

URL Decoder

Convert percent-encoded URLs back to readable text — 100% in your browser, no upload.

Input

Output

What is URL decoding?

URL decoding is the reverse of URL encoding (percent-encoding). It converts the percent-encoded sequences in a URL — sequences that start with % followed by two hexadecimal digits — back into their original characters. For example, %20 becomes a space, %26 becomes an ampersand, and %E4%BD%A0 becomes the Chinese character 你. Decoding is what allows browsers and applications to read the values that were safely transported inside a URL.

The decoding process is specified in RFC 3986 and is implemented in every modern programming language. The JavaScript function used by this tool is decodeURIComponent(), which reverses the encoding produced by encodeURIComponent(). It reads each %XX sequence, interprets the hex digits as a byte, and assembles the bytes into the original string according to the UTF-8 character encoding.

When to URL-decode text

URL decoding is needed whenever you receive text that has been transmitted inside a URL and you want to read or process its original form. Common scenarios include:

  • Reading query parameters. Server-side code and client-side scripts must decode ?name=John%20Doe back to John Doe before using the value.
  • Debugging URLs. Pasting an encoded URL into a decoder reveals the actual parameter values, which speeds up troubleshooting.
  • API responses. Some APIs return encoded values in their payloads; decoding makes them human-readable.
  • Analytics data. UTM parameters and tracking values are often encoded and must be decoded for reporting.
  • OAuth callbacks. State tokens and redirect URIs arrive encoded and need decoding before validation.
  • Internationalised text. Chinese, Japanese, Korean and emoji characters that were percent-encoded for transport must be decoded to display correctly.

Decoding a value twice can corrupt it (for example, a literal %20 in the original text would erroneously become a space), so it is important to decode exactly once.

decodeURIComponent vs decodeURI

JavaScript provides two decoding functions that mirror the two encoding functions. decodeURIComponent() decodes every %XX sequence, including those for reserved characters like /, ? and &. decodeURI() leaves encoded reserved characters intact, because it assumes the input is a complete URL whose structure must be preserved.

Use decodeURIComponent() when you are decoding an individual parameter value that was encoded with encodeURIComponent(). Use decodeURI() only when decoding a full URL that was encoded with encodeURI(). This tool uses decodeURIComponent() because the most common real-world task is decoding a single value rather than a full URL.

Common decoded characters

The table below lists the encoded sequences most often encountered in practice and their decoded forms.

EncodedCharacterNotes
%20SpaceCanonical percent-encoding of a space
+Space (in form data)Only in application/x-www-form-urlencoded
%26&Separates query parameters
%3D=Separates keys from values
%3F?Marks the start of the query string
%23#Marks the start of the fragment
%2F/Path separator
%25%The percent sign itself

If the input contains a + sign that represents a space (as in form data), you may need to replace + with %20 before decoding, because decodeURIComponent() leaves + untouched.

How to decode a URL

Decoding text with this tool takes only a second and happens entirely inside your browser. No upload, no sign-up, and no installation are required. The tool uses JavaScript's native decodeURIComponent() function. Follow these steps:

  1. Paste the encoded string. Copy the percent-encoded URL or parameter value and paste it into the input box.
  2. Click "Decode". The tool runs decodeURIComponent() on the input and writes the decoded text into the output box in real time.
  3. Check for errors. If the input contains a malformed % sequence, an error message is shown. Correct the input and try again.
  4. Copy the result. Click "Copy to Clipboard" to copy the decoded text, then use it wherever you need.

Because every step runs locally in your browser using JavaScript, your text is never uploaded to a server. This makes decoding completely private, fast, and suitable for sensitive content such as tokens, keys and personal data.

Is this URL decoder free?

Yes, completely free with no sign-up, no watermarks and no limits.

What does it do with malformed input?

It shows an error message when the input contains an invalid % sequence that decodeURIComponent() cannot parse.

Does it convert + to a space?

No. decodeURIComponent() leaves + unchanged. For form data, replace + with %20 before decoding.

Can it decode Unicode?

Yes. UTF-8 byte sequences like %E4%BD%A0 are decoded back to their original characters.

Are my inputs uploaded?

No. All processing is local. Your text never leaves your browser.