List URL Decoder

Decode every percent-encoded item in a list independently using decodeURIComponent, the inverse of the List URL Encoder, reporting exactly which item is malformed if decoding fails. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-27

Overview

Introduction

Once you've pulled a batch of percent-encoded values out of a URL, log file, or query string, extracted query parameters, path segments, or search terms, you need them decoded back to plain text to actually read or reuse them.

This tool decodes an entire list of percent-encoded items in one pass, catching and clearly naming any single malformed item instead of failing on the whole batch.

What Is List URL Decoder?

The List URL Decoder is a per-item decoder: it splits the input on your chosen separator and decodes each item independently with the same rules as JavaScript's `decodeURIComponent`.

It's the exact inverse of the List URL Encoder, so a list encoded there decodes back here to the original values.

How List URL Decoder Works

The input is split into items on your chosen separator, trimmed, and blank items are dropped.

Each item is passed through `decodeURIComponent()`; if any item contains malformed percent-encoding (like a stray "%" not followed by two hex digits), the resulting error is caught and reported with that item's 1-based position and value.

When To Use List URL Decoder

Use this whenever you have a list of percent-encoded values, extracted from a query string, log file, or another tool, and need the plain text back.

It's also useful for spot-checking whether a batch of values is validly percent-encoded before importing it elsewhere.

Features

Advantages

  • Names the exact item that fails to decode, instead of one generic error for the whole input.
  • Matches the exact decoding behavior of JavaScript's built-in `decodeURIComponent`, so results match what your code would produce.
  • Trims each item automatically, so incidental whitespace doesn't cause false failures.

Limitations

  • Stops at the first malformed item rather than decoding the valid ones and skipping the rest.
  • Doesn't decode a full URL's structural characters differently, it treats every item as a plain encoded component.

Examples

Decoding a valid list

Input

hello%20world
c%2B%2B%20tutorial

Output

hello world
c++ tutorial

Each item's percent-encoded sequences are decoded back to their original characters.

Decoding query-string style items

Input

name%3DJohn
city%3DNew%20York

Output

name=John
city=New York

Percent-encoded punctuation like %3D (=) and spaces are restored per item, independent of the others.

Best Practices & Notes

Best Practices

  • If decoding fails, check the reported item number first to find the malformed entry quickly in a long list.
  • Use the List URL Encoder to generate test data if you want to confirm the decoder round-trips correctly.

Developer Notes

Each item is decoded with the native `decodeURIComponent()` wrapped in a try/catch; a thrown `URIError` (from malformed percent-encoding) is caught and reported with the failing item's 1-based position and original value.

List URL Decoder Use Cases

  • Decoding a batch of query parameter values extracted from server logs
  • Validating that a list of percent-encoded values is well-formed before importing it
  • Round-tripping test data produced by the List URL Encoder

Common Mistakes

  • Pasting a raw "%" that isn't part of a percent-encoded sequence, a literal "%" in a URL must itself be encoded as "%25" or decoding will fail.
  • Assuming a failed decode means the whole list is unusable, only the reported item is invalid; the rest can still be decoded once it's fixed or removed.

Tips

  • A literal "%" that isn't meant to start an escape sequence needs to be written as "%25" for decodeURIComponent to accept it.
  • Pair with the List URL Encoder to round-trip a batch of values and confirm nothing was lost.

References

Frequently Asked Questions