Decode + and % Sequences Together
Decode strings that mix + (form space) and %HH sequences. The usual case for query strings from HTML forms.
Part of the free URL Decoder. Runs in your browser — nothing is uploaded.
Decode + and % Sequences Together
Real query strings often mix both conventions: + for spaces from a form and %C3%A9 for UTF-8 bytes. Replace pluses, then percent-decode, to reconstruct the original text.
Worked example: Mixed form encoding
Encoded
q=caf%C3%A9+in+Pune
Decoded
q=café in Pune
Practical tip
Order matters: plus-to-space first, then decodeURIComponent. Doing it the other way can turn a decoded + into a space you did not want.
How to use this URL Decoder
- 1Use the live tool above — it runs entirely in your browser and never uploads your data.
- 2Paste the sample from the worked example, or use your own input.
- 3Copy the result, then adapt the same steps in your editor, script, or pipeline.
Decode + and % Sequences Together FAQs
Should I always treat + as a space?
Only when the source is form encoding or a server that follows that convention. Otherwise + is a plus.
How does URLSearchParams decode this?
new URL(url).searchParams.get(key) applies the form-decoding rules for you.
More URL Decoder pages
- URL Decode %20 to SpacesDecode %20 and other percent-encoded bytes back to readable text. Paste an encoded URL or query value.
- Decode a Query String OnlineDecode a full query string and read every parameter. Turns %XX sequences back into readable values.
- decodeURIComponent OnlineRun decodeURIComponent on any string. Catch malformed % sequences and see the exact JavaScript result.
- Decode + as a SpaceTreat + as a space before percent-decoding, the same way HTML form bodies are decoded.
- Decode UTF-8 Percent-EncodingDecode percent-encoded UTF-8 back to accents, CJK characters and emoji. See caf%C3%A9 become café.
- Parse URL Query ParametersSplit a URL into protocol, host, path and a table of query parameters. Decode each value automatically.
- Fix Malformed Percent-EncodingSee why decodeURIComponent throws on a trailing % or a lone %2, and how to clean the string before decoding.
- Bulk URL DecoderDecode many percent-encoded lines at once. Paste a list of values or URLs and decode each line.
- Decode a Nested Redirect URLDecode a return_to / redirect parameter that is itself a URL. See the real destination hidden behind percent-encoding.