URL encoder and decoder
For putting text into an address without breaking it. The difference between encoding a value and encoding a whole URL is the bit that usually goes wrong.
Your figures
Result
coffee%20%26%20cake - Characters
- 19
- Encoded sequences
- 3
- Length difference
- 6
What we assume
- Processed in your browser. Nothing leaves your machine.
- It uses
encodeURIComponentandencodeURI, the standard ones. The difference between them is exactly the scope option. - A «+» is not treated as a space. That belongs to form encoding, not to URLs, and confusing the two corrupts data.
- Text is encoded as UTF-8, which is what the current standard says for characters outside ASCII.
How it is calculated
Encoding a URL means replacing characters that carry special meaning — or that do not fit
— with a % followed by their hexadecimal value. A space becomes %20,
and an «ñ», which is two bytes in UTF-8, becomes %C3%B1.
Value or address: the decision that matters
If you are putting text inside a parameter, everything special has to be encoded,
including /, ? and &: otherwise your value splits
the URL in two. If what you have is the whole address, encoding those characters destroys it,
because they are precisely its structure.
It is the most common mistake people arrive with, which is why we warn you when what you are encoding as a value looks like a whole address.
A «+» is not a space
In an application/x-www-form-urlencoded body, «+» means space. In a normal URL
it is a literal plus. Treating them the same is a classic source of corrupted data, so here it
is left alone and you get a warning.
An example
coffee & cake as a value becomes coffee%20%26%20cake: the
«&» is encoded because, left alone, it would separate parameters. As a whole address, by
contrast, the «&» is left intact.
Frequently asked questions
Which scope do I need?
If the text will be a parameter value — what comes after an = — pick «a value». If you are fixing a whole address with spaces or accents, pick «the whole address».
Why does decoding not turn «+» into a space?
Because in a URL a «+» is a plus. It only means space inside a form body, which is a different format. Confusing them corrupts data, so we would rather warn you.
What does the strict option do?
It also encodes !, ', (, ) and *, which the standard leaves alone but some older servers treat as reserved. If your URL works without it, you do not need it.
Does it work for a parameter containing a URL?
Yes, and that is exactly the «a value» case: an address inside another one has to be encoded whole, :// included.
Keep calculating
All tools →Updated on 2026-09-02. Calculations run in your browser; nothing you type is sent to a server.