URL UTILITIES

URL Encoder, Decoder & Inspector

Encode text for a URL, decode percent escapes, or inspect a link’s parts and query parameters. Everything runs locally; your URL is never visited.

Component encoding escapes URL separators such as &, =, / and #. Encode each query value separately before assembling a URL.

Enter content or load an example.

Input

Result

Input limit: 50,000 characters for encoding/decoding; 10,000 for inspection.

Using URL Encoder, Decoder & Inspector

Prepare URL values, read percent-encoded text or inspect how a browser parses a link. All processing happens locally without visiting the destination.

  1. Choose Encode or Decode and select Component, Whole URL or Form value. Use Component for one query value or path segment; use Whole URL when separators should keep their meaning.
  2. Paste content and run the operation. Copy or download the result. Use result as input switches to the reverse operation without running it automatically.
  3. For inspection, choose Inspect URL and enter an HTTP/HTTPS URL. Relative references need a complete base URL. Read the normalized breakdown, raw query fields, duplicate parameter rows and any parsing notes, then export the complete JSON report.

Example

Component input: tea & coffee
Encoded: tea%20%26%20coffee
For a query value, this keeps & inside the value instead of turning it into a parameter separator.

Questions & answers

When should I use component encoding?

Use it for one query value or one path segment. It escapes separators such as &, =, / and # so they stay inside that value. It uses JavaScript encodeURIComponent and leaves its standard unescaped punctuation unchanged.

How is whole-URL mode different?

It uses encodeURI/decodeURI, preserving reserved separators so the URL structure remains intact. Whole-URL decoding keeps reserved escapes such as %26 and %2F. This operation is not URL validation and should not be used to assemble unescaped query values.

Does + mean a space?

In form-value mode and query-parameter inspection, yes. Component mode keeps a literal + when decoding. Component/form encoding turns a literal plus into %2B. Form encoding uses + for a space; component encoding uses %20.

Why does decoding fail on some inputs?

The decoder rejects incomplete percent escapes and invalid UTF-8 byte sequences. It processes one layer only: %2520 becomes %20. Encoding already-encoded text can encode its percent signs again.

Are duplicate parameters and empty values preserved?

The inspector keeps parameter order and repeated names as separate rows. It records whether a field contains =, distinguishing flag from flag=. Blank names are kept; empty fields between & separators are skipped by browser query parsing.

Why does the inspected URL look different?

Browser URL parsing can lowercase hosts, serialize international hostnames, remove default ports, resolve relative references and normalize paths. The report shows the normalized URL. Query rows retain the parsed raw fields alongside decoded names and values, with notes for malformed sequences.

Can I inspect a relative path?

Yes. Supply a complete HTTP/HTTPS base URL. Relative paths, fragments and query-only references resolve against it. Without a base, the inspector requires an absolute HTTP/HTTPS URL. Other schemes are not supported by inspection.

Are my URLs visited, saved or uploaded?

No. Processing remains local, and inspection never fetches or opens the link. Inputs and outputs are not saved. Encoding/decoding accepts up to 50,000 UTF-16 units; inspection and its base accept up to 10,000 each, with at most 500 query rows. Downloaded results contain your content, including embedded credentials if present.

Help improve this tool

Report a problem or suggest an improvement

Describe the issue without pasting private tool input. Feedback goes to our admin inbox.

Find another tool · Read practical guides