Free tool · nothing is uploaded
Free URL encoder
Paste text or a link. This page percent-encodes it as a query value and as a full URL, and it decodes percent-encoding. The text stays in your browser.
Query value
Full URL
Decoded
The three lines update as you type. They are not sent anywhere.
How the encoding works
- Query value uses percent-encoding for one piece of a URL, such as a search term. A space becomes
%20. An ampersand becomes%26. A colon and a slash are encoded too, so do not use this line on a whole address. - Full URL leaves the characters that structure an address, including
:/?#and&. Spaces and accented letters are still encoded. - Decoded turns
%20back into a space and%C3%A9back into é. A percent sign must be followed by two hex digits.100%is not valid encoding. - Treat + as a space applies only to decoding. Leave it off unless the text came from a form-style query string, where a plus sign means a space.
Encoding makes a character safe to put in a URL. It does not change rankings, and it does not build a campaign link. For utm_source and the other campaign parameters, use the UTM builder. For the path of the page itself, use the URL slug generator.
Questions about this encoder
What does URL encoding do?
It replaces characters that would break a URL with a percent sign and two hex digits. A space becomes %20. An ampersand in a query value becomes %26. The page itself does not change.
When should a whole URL stay unencoded?
When the text is already a full address. Encoding a whole URL for a query value also encodes the colon and the slashes, so https:// becomes https%3A%2F%2F. Use the query-value line for one parameter. Use the full-URL line when the scheme and path should stay readable.
Why is a space %20 and not a plus sign?
This encoder uses percent-encoding, so a space is %20. Some form submissions use a plus sign for a space instead. Turn on Treat + as a space only when you are decoding that kind of query string. Otherwise a plus sign stays a plus sign.
Does this tool upload what I paste?
No. The text stays in the browser. Blogoose does not receive it.