URL Encoder and Decoder

Percent-encode text for a URL, decode an encoded link back to readable text, and see every query parameter laid out in a table.

Plain text or URL
Encoded

Query string parameters

Paste a link with a ? in it, or a query string like a=1&b=2, in the input box to list its parameters here, decoded.

Your links never leave your device. Everything is processed in this browser tab.

What URL encoding is

A URL may only contain a limited set of characters: letters, digits and a few symbols. Everything else, including spaces, Hindi text, emoji and symbols that have a job inside a URL such as &, = and ?, has to be written as percent-encoding. Each byte of the character's UTF-8 form becomes a % sign followed by two hexadecimal digits. A space becomes %20, the rupee sign becomes %E2%82%B9, and the Hindi word "नमस्ते" becomes six three-byte groups. The rules come from RFC 3986, the standard that defines URL syntax.

encodeURIComponent or encodeURI?

These are the two built-in JavaScript functions, and choosing the wrong one is the most common URL bug.

HTML forms submitted with GET use a slightly different style in which a space becomes + instead of %20. Tick "Use + for spaces" to produce or read that form. When it is off, a + in encoded text is kept as a literal plus sign.

Decoding, and what happens with broken input

The browser's own decoder gives up completely on the first bad sequence with a "URI malformed" error. This decoder keeps going: it decodes every valid sequence, leaves a broken one exactly as typed, and lists each problem with its position. A broken sequence is a % not followed by two hex digits, such as the "50%" in a discount code, a byte that cannot start a UTF-8 character, or a multi-byte character that was cut short when a link was truncated.

The query string table

Paste any link and the parameters after the ? appear in a table, one row each, with keys and values decoded. Repeated keys appear as separate rows, a key with no = is marked as having no value, and anything after # is ignored because the fragment is never sent to the server. This is handy for reading tracking links, checking which UTM tags a campaign URL carries, or debugging a search page.

A worked example

Encoding the search phrase "red saree & dupatta" as a value gives red%20saree%20%26%20dupatta. Without encoding, the & would start a new parameter and the server would see a search for "red saree " plus a parameter called " dupatta" with no value. Paste ?q=red+saree&size=M%2FL with decoding on and the table shows q as "red saree" and size as "M/L".

Privacy and limits

Links often contain session tokens, email addresses or order numbers. Here they are processed by your browser only and never sent to Ur Next Door. The tool encodes text as UTF-8, which every modern site expects; very old systems that used other character sets will decode such links differently.

Frequently Asked Questions

What is the difference between encodeURIComponent and encodeURI?
encodeURIComponent encodes a single value, so characters like / ? & and = become codes and cannot break the URL. encodeURI encodes a whole link and keeps those structural characters as they are.
Why is a space sometimes + and sometimes %20?
Standard percent-encoding writes a space as %20. HTML forms sent with GET write it as +. Tick Use + for spaces to produce or read the form style; otherwise a + stays a plus sign.
What happens if the encoded text is broken?
Valid parts are still decoded. Each broken sequence, such as a % without two hex digits or a cut-off Hindi character, is left as typed and listed with its position so you can fix it.
Can it read the parameters of a long tracking link?
Yes. Paste the link and every parameter after the ? is shown in a table with its key and decoded value, including repeated keys and keys without a value.
Does it handle Hindi and emoji?
Yes. Characters are encoded as UTF-8 bytes, which is what browsers and servers expect, and decoding turns them back into the same text.
Are my links sent anywhere?
No. Encoding, decoding and the parameter table all run in your browser, and nothing is sent to Ur Next Door.