MSRX Tools

URL Decode

Turn percent-encoded text back into plain characters.

Everything runs inside your browser. Your files never leave your device.

Input

Result

The result appears here as you type.

Ask about URL Decode

Questions about what this tool does, which option to pick, or what it can and cannot handle.

The question you type here is sent to an AI provider to be answered — your files and whatever you put in the tool above are not, and the assistant cannot see them. Answers are generated and can be wrong. The tool itself is not guessing: it runs deterministic code on your device.

About the URL Decode

Percent-encoding is how a URL carries characters it cannot hold literally. A space becomes %20, a colon %3A, a slash %2F, and any byte outside the safe set becomes a percent sign followed by two hexadecimal digits. Reversing that by eye is possible and slow; this does it instantly.

Paste an encoded string and the readable version appears. It is most useful on the URLs that arrive in bug reports and analytics exports, where a redirect chain has nested one URL inside another and the whole thing has become a wall of percent signs.

Double encoding is the failure this most often diagnoses. When a value is encoded twice, the percent sign of the first encoding is itself encoded, so %20 becomes %2520 — the %25 is a literal percent sign, followed by the digits 20. If your decoded output still contains percent sequences, that is what happened, and running the decode again will finish the job. The cause is nearly always two layers of code both trying to be helpful, one in application code and one in a framework that had already done it.

The plus sign is the other trap. In the query part of a URL a plus means a space, a rule inherited from HTML form submission, but in the path portion a plus is a literal plus. A decoder that applies one rule everywhere gets one of the two cases wrong, which is why the mode matters when the string spans both parts.

An invalid sequence — a percent sign followed by something that is not two hexadecimal digits — is reported rather than silently dropped, because a stray percent in an otherwise valid URL is usually the actual bug and hiding it helps nobody.

How to use it

  1. 1Paste the percent-encoded text or URL into the input.
  2. 2Read the decoded result underneath.
  3. 3If percent sequences remain, the value was encoded twice — decode the result again.
  4. 4Choose the mode that matches where the string came from, since a plus means a space in a query and a literal plus in a path.

Questions

Why does my decoded text still have percent signs in it?
It was encoded twice. %2520 decodes to %20, which decodes to a space. Run the decode a second time. The cause is usually two layers of code each encoding a value that was already encoded.
Should a plus become a space?
In the query string, yes — that comes from HTML form encoding. In the path, no, where a plus is a literal character. Pick the mode that matches the part of the URL your string came from.
What does %C3%A9 decode to?
The letter é. Characters outside ASCII are encoded as their UTF-8 bytes, so one visible character often becomes two or three percent sequences. Emoji commonly take four.
It says the input is invalid.
A percent sign must be followed by exactly two hexadecimal digits. A bare percent, or one followed by other characters, is not valid encoding — and it is usually the thing that broke whatever you are debugging, so it is reported rather than skipped.