Three correct modes
Component, full-URL and form encoding are genuinely different. Pick the right one instead of hoping a single generic button does what your API expects.
Paste a link or a query string and convert it instantly. This URL encoder and decoder handles percent-encoding both ways, supports component, full-URL and form (+ for space) modes, breaks the address into its parts, decodes every query parameter and gives you copy-ready code for JavaScript, Python, PHP, Java and C#.
Percent-encoding looks simple until a plus sign, an ampersand or an accented character quietly breaks a link. Most online converters give you one box and one button; this one shows you what actually changed and why.
Component, full-URL and form encoding are genuinely different. Pick the right one instead of hoping a single generic button does what your API expects.
Every parameter is split out and decoded into a readable key and value list, so you can debug a tracking link or callback URL at a glance.
Tick one box and every line is converted independently — ideal for lists of slugs, redirects, UTM links or exported search terms.
Accents, Cyrillic, CJK characters and emoji are encoded as correct UTF-8 percent sequences instead of being mangled or dropped.
Get the equivalent call in JavaScript, Python, PHP, Java or C# so the behaviour you tested here is the behaviour you ship.
Conversion happens in your browser. Tokens, signed URLs and customer links are never sent to a server, and there is no rate limit or sign-up.
Drop in a full address, a single query value, a redirect target or a list of links. Conversion starts as you type.
Switch between Encode and Decode. Decode also fixes double-encoded strings if you run it twice — the output tells you when a value is still encoded.
Use Component for a value going inside a parameter, Full URL when you want the structure of the link preserved, and Form data when the target expects + instead of %20.
Open the URL breakdown tab to confirm the scheme, host, path, parameters and fragment are what you expect before you use the link.
Copy the output, or send it back to the input with one click to chain a second conversion. Grab the matching code snippet if you need it in a script.
redirect_uri mismatches caused by encoding differences.%20 and %3D.The characters that most often need encoding inside a URL, and what they become.
space%20 (or + in form data)!%21"%22#%23$%24%%25&%26'%27+%2B,%2C/%2F:%3A;%3B=%3D?%3F@%40[%5B]%5Dé%C3%A9 (two UTF-8 bytes)newline%0AURL encoding, also called percent-encoding, replaces characters that are unsafe or reserved in a web address with a percent sign followed by their hexadecimal byte value. A space becomes %20 and an ampersand becomes %26, which keeps the link readable by servers and stops a value from being mistaken for URL structure.
Component encoding escapes every reserved character, including the colon, slash, question mark, hash, ampersand and equals sign, so it is the correct choice for a value you are putting inside a parameter. Full-URL encoding leaves those structural characters alone and only escapes spaces and unsafe characters, so it is the right choice when you want the whole link to stay a working link.
Both appear in the wild. %20 is correct percent-encoding and works anywhere in a URL, while the plus sign only means a space inside form data sent as application/x-www-form-urlencoded, which is what most HTML form submissions and many search endpoints use. Choose Form data mode when your target expects the plus, and Component mode when it expects %20.
That usually means the string was encoded with a different character set, or the percent sequences are incomplete. A valid UTF-8 accented character takes two bytes, such as %C3%A9 for é, so a lone %A9 cannot be decoded and will raise a malformed URI error. Check that the whole sequence was copied, including every percent sign.
Double encoding happens when an already-encoded string is encoded again, turning the percent sign itself into %25. You will see values like %2520 instead of %20. Decode the string twice in this tool: the first pass turns %2520 into %20 and the second pass gives you the original space.
Yes. All encoding and decoding runs in JavaScript inside your own browser, so signed URLs, access tokens and customer data are never transmitted, logged or stored. The page also keeps working after it has loaded even if you go offline.
Yes. Tick the option to convert each line separately, then paste one URL or value per line. Every line is converted independently and the output keeps the same order, which makes it easy to paste a whole column back into a spreadsheet or redirect map.
The unreserved set is safe everywhere: the letters A to Z in both cases, the digits 0 to 9, and the four marks hyphen, underscore, period and tilde. Everything else is either reserved for URL structure or unsafe, and should be percent-encoded when it appears inside a value.
Encode, decode, inspect every parameter and copy the matching code. Free, unlimited and completely private.