Reading an address full of percent signs
When a log or a referrer hands you something like %C3%A9%C3%A8, there is no
reading it as it stands. Paste it here and the original characters come back. You can drop in a
whole address too — the https:// part is left alone and only the encoded positions
are unwrapped.
Spotting double encoding
If the result still looks like %C3%A9 after decoding, the value was
double-encoded: the % itself was wrapped once more as %25. It usually
means some code in the chain is encoding twice.
Turn on unwrap double encoding all the way and it repeats until nothing
changes. Treat that as a diagnosis, not a fix — if the value genuinely contains a percent sign,
as in 100%25, this unwraps that too and corrupts the original. Leave it off by
default and reach for it while hunting the cause.
Handling the + sign
Whether + means a space depends entirely on where the value came from.
| Source | Setting |
|---|---|
| An HTML form-post body, a search query string | On — + is a space |
| A path, a JSON value, a Base64 string | Off — + is just + |
Turn it on for a Base64 string and every + becomes a space, wrecking the value.
That is why the default is off.
"Not followed by two hex digits"
It means there is an unencoded % inside the value. Put a string like
50% off into an address without encoding it and you get this error. A percent sign
that belongs to the value has to be written as %25. The character position is shown
under the error.
I get replacement characters instead of readable text
The original was encoded in something other than UTF-8 — legacy systems produce values like
%C7%D1 in a national character set. This tool only handles UTF-8. For those, use
the character set picker in Base64 Decode, or convert on
the server side.