./prontouso.com

DEVELOPER TOOLS

URL Encoder/Decoder

Encode or decode text and URLs in dedicated tabs, process a whole list of lines at once, decode values that were percent-encoded more than once, convert query strings to JSON or back, and break a URL down into its parts.

Tool statusRuns in your browser
Preview
prontouso://dev/url-lab
RFC 3986NO UPLOAD
Format
INPUT
0 characters
OUTPUT
0 characters

Component mode escapes /, ?, and & too, so it's safe for a single query value.

ComponentEscapes reserved characters. Useful for isolated query and parameter values.
Full URLPreserves structural separators such as :, /, ? and #.
Line by lineProcesses each line on its own, without turning line breaks into %0A.

How it works

  1. Enter your input

    Fill in the values, paste your text, or upload the file this tool works with.

  2. See results instantly

    Most tools update live as you type; a few use a single button. Either way, the result appears right on this page.

  3. Use your results

    Copy, download, or share what the tool produces — you're always in control of the output.

Privacy and processingRuns locally in your browser. This tool does not upload your input.

What is URL Encoder/Decoder?

The URL Encoder/Decoder is a tool for applying or undoing percent-encoding, converting query strings to JSON and back, and inspecting a URL's protocol, host, port, path, and parameters — all locally in your browser.

UNDERSTAND THE TOOL

How to encode, convert, and inspect URLs

The tool has three sections: Encode/Decode for percent-encoding, Query String for converting a query string to JSON and back, and Inspect URL for splitting an address into protocol, host, path, and parameters.

Component vs. full URL

"Component" mode escapes every reserved character, including /, ?, and &, which makes it safe to embed as a single value inside a query string or path segment.

"Full URL" mode leaves URL structure characters (: / ? # & = ...) alone while applying RFC 3986 percent-encoding to the rest, which is the right choice when you're encoding an entire address rather than one piece of it.

Common uses

  • Building a query string value that contains spaces, &, or =, such as a search term or a redirect URL passed as a parameter.
  • Reading a URL from a log file or browser address bar that shows %20 and other percent-encoded sequences instead of the original text.
  • Embedding a file path or non-Latin text (accents, emoji, other scripts) safely inside a link.

Encode and Decode keep their own input and output

Inside the Encode/Decode section, each direction keeps its own text and result, so pasting something to decode never overwrites text you were encoding a moment ago, or the other way around.

The round button between the two panels only switches which direction is showing — it never copies text from one side to the other, so switching direction never erases what you already typed on either side.

Batch and repeated values

  • Turn on "Process each line separately" to treat a pasted list as independent values instead of one block of text.
  • Turn on "Decode recursively" (while decoding) to keep decoding a value that was percent-encoded more than once, up to 16 times.
  • "Live mode" is already on by default, so the result updates as you type or paste; turn it off if you'd rather review the input before pressing the Encode/Decode button.

Converting a query string to JSON

On the Query String tab, paste a query string (with or without the leading ?) or a full URL — the tool automatically pulls out just the part after the ?. A detected-parameters table updates on every keystroke, before you even click convert.

A repeated key, like "tag=a&tag=b", shows up as two rows in the table and becomes a list in the JSON. The reverse conversion, "JSON to query", turns an array back into multiple parameters that share the same key.

Query conversion follows form-style URLSearchParams rules, so + represents a space. JSON values can be strings, numbers, booleans, or arrays of those values; null values are omitted, and nested objects are rejected because query strings have no single standard representation for them.

Inspecting a URL

On the Inspect URL tab, paste any address to see its protocol, host, port, path, query string, and hash in separate blocks, plus the URL normalized by the browser's own parser.

When the URL doesn't specify a port explicitly, the tool displays the protocol's default port (443 for https, 80 for http). For an address with credentials (user:pass@host), the identity summary masks the password; the editable input and normalized address still reflect the URL you pasted.

Privacy and processing

All three sections run entirely in your browser — no URL, query string, or typed text is sent to a server. Component and full URL modes escape different characters: pick Component for a parameter value and Full URL when the address structure should remain readable.

Frequently Asked Questions

Which mode should I use for a query parameter?

Use Component mode. It escapes characters like & and = that would otherwise be read as part of the query string's structure instead of your value.

Why does decoding fail with an error?

Decoding fails when a % is not followed by two hexadecimal digits or when the resulting bytes are not valid UTF-8. Check the percent sequences in the pasted text.

What's the difference from Base64 encoding?

URL encoding (percent-encoding) only escapes characters that aren't safe in a URL, keeping the rest of the text readable. Base64 re-encodes every byte, which is useful for binary data but makes the whole result unreadable as text.

Should spaces become + or %20?

Encode/Decode uses percent-encoding, so spaces become %20. Query String conversion follows form-style URLSearchParams rules, where spaces become +; decoding a query there turns + back into a space.

What does "Decode recursively" do?

It keeps decoding the result as long as it keeps changing, up to 16 times, which resolves a value that was percent-encoded more than once — for example "%2520" becoming "%20" and then a space.

Does switching from Encode to Decode erase what I typed?

No. Encode and Decode keep separate input and output; both the Encode/Decode buttons and the round switch button only change which direction is showing, without moving or clearing text on either side.

What does a repeated query key become in the JSON?

A list. "tag=a&tag=b" converts to "tag": ["a", "b"]. Converting back with "JSON to query" turns an array on the same key into a repeated parameter for each item.

Does the port shown in Inspect URL always come from the pasted URL?

Not necessarily. If the URL has no explicit port, the tool fills in the protocol's default port (443 for https, 80 for http) for display only — the URL itself has no port in that case.