Percent-encode or decode text and URLs, and see every part of a link
Runs in your browser. Nothing you type is sent anywhere. Updated on 24 Oct 2026.Percent-encoding replaces characters a URL cannot carry, so a space becomes %20 and an ampersand becomes %26. Without it a query string breaks at the first special character. This encodes and decodes both ways, and splits a link into its parts. Nothing is sent anywhere.
On the "Encode / Decode" tab, choose Encode or Decode.
Choose One value for a parameter or search term, or Whole URL for a complete link.
Turn on "Spaces as +" if the text is form data.
Type or paste into the left pane, then click Copy to take the result.
This URL encoder converts text into percent-encoded form, so spaces become %20 and characters such as &, ? and ₹ are written in a way every browser and server reads the same. Switch to decode to turn an encoded string back into plain text as you type.
There are two ways to encode, and picking the wrong one is a common bug. Component mode, like JavaScript's encodeURIComponent, escapes everything that has a meaning in a URL, including / ? & = and #; use it for a single value such as a search term or a redirect address. Whole URL mode, like encodeURI, leaves those characters alone and only escapes spaces and non-ASCII text, which suits a complete link.
Decoding tells you exactly what is wrong when it fails. A lone percent sign, as in "50% off", or bytes cut in the middle of a character are reported with their position, instead of the browser's bare "URI malformed" error. If the result still contains escapes such as %20, the text was probably encoded twice, and you are told so.
The URL tab breaks a link into protocol, host, port, path, hash and a table of query parameters, each decoded. Edit a parameter, add one or remove one, and the link is rebuilt with correct encoding, which is handy for checking UTM tags or changing a filter in a long search URL. Everything runs in your browser and nothing is sent anywhere. Related tools: Base64 Encode & Decode, JWT Decoder.
encodeURIComponent escapes every character with a special meaning in a URL, including / ? & = and #, so use it for one value inside a URL. encodeURI keeps those characters and escapes only spaces and non-ASCII text, so use it for a whole link.
The text contains a % that is not followed by two hex digits, such as 50% off, or bytes that do not form valid UTF-8. This tool shows the exact position. Write a literal percent sign as %25.
In a path or most APIs a space is %20. In HTML form data (application/x-www-form-urlencoded) a space is written +. Turn on the plus option to encode or decode that way.
Open the URL tab and paste the link. Every query parameter appears in a table, decoded. Change a value, add or remove a row, and the rebuilt URL updates below, ready to copy.
Yes, free with no signup and no limit on how much text you encode or decode. Encoding runs in your browser with JavaScript, so the links, tokens and query strings you paste are never sent to a server, and nothing is stored once you close the tab.
Double encoding is the usual cause: the text was encoded once, then encoded again, so a space became %20 and then %2520. Decode a second time and the spaces come back. This page shows a note when the result still looks percent-encoded, so you know another pass is needed.
Still stuck? Ask about URL Encoder / Decoder and anybody who knows can answer. No account needed.
Same job, other tools: Base64 Encode – Turn text or a file into Base64 · Base64 Decode – Turn Base64 back into text or a downloadable file.
On the related tools: JSON to Go Struct – Paste an API response and get a Go struct with json tags to unmarshal it.
Also works as: URL Decoder.
In the collection Developer Converters.