My Tool Studio
Developer

URL Encoder / Decoder

Use this page to url decode a link full of %20 and %3D escapes into readable text, or to encode a value so it is safe inside a URL. Paste on the left and click Decode or Encode, or turn on Live mode to convert as you type. Encode as Query value escapes everything except letters, digits and - _ . ~, while Full URL keeps the : / ? & = that give a link its structure. Tick Spaces as + for HTML form data or Each line separately for a list of values, and pick a legacy character set such as Windows-1252 if an old system needs it. Paste a full link and a table lists every query parameter, decoded. If a result still has escapes, one click decodes it until clean.

Always freeNo sign upRuns in your browser

How to use

01

Paste the URL or text

Put the link or raw value in the Input pane, or click Open text file. Try sample loads a URL with a space, an ampersand and an encoded UTM value, so you can see exactly what changes.

02

Set options and convert

Choose Encode as and a Character set, and tick Spaces as + or Each line separately if needed. Click Encode or Decode, or tick Live mode and pick a Live direction.

03

Copy the result or the parameters

Copy the output or download it as .txt. For a full link, the Query parameters table shows each key and decoded value with its own Copy button, plus Copy as JSON.

Why URL Encoder / Decoder

Common characters and their percent codes

Letters, digits and the four symbols - _ . ~ never need encoding. The reserved characters below can stay as they are when they do their normal job in a URL, such as a / between path segments or an & between parameters. They must be encoded when they are part of a value.

Characters outside ASCII are first turned into bytes, using UTF-8 unless you pick another character set, and each byte is escaped. That is why é becomes %C3%A9 and the rupee sign ₹ becomes %E2%82%B9 in UTF-8.

CharacterEncodedWhy it matters
space%20 (or + in form data)Not allowed inside a URL
!%21Reserved in RFC 3986; encodeURIComponent leaves it alone
#%23Starts the fragment, which is never sent to the server
%%25Starts every escape sequence
&%26Separates query parameters
+%2BMeans a space in form data
/%2FSeparates path segments
:%3ASeparates the scheme and the port
=%3DSeparates a key from its value
?%3FStarts the query string
@%40Separates user info from the host

Query value or full URL: the same link, two results

The Encode as setting decides which characters survive. Encode a single value with Query value, and encode a whole link that only needs its spaces and accented letters fixed with Full URL. Here is the same input in both modes:

InputQuery value / componentFull URL
https://example.com/a b?q=x&yhttps%3A%2F%2Fexample.com%2Fa%20b%3Fq%3Dx%26yhttps://example.com/a%20b?q=x&y
soap & glorysoap%20%26%20glorysoap%20&%20glory
café (it's)caf%C3%A9%20%28it%27s%29caf%C3%A9%20(it's)

Common questions

Which characters break a URL query string?
The usual ones are &, =, ?, #, + and spaces, because each has a job in URL syntax. If a user searches for soap & glory and you pass it along raw, the server reads glory as a separate parameter. Encoding the value first keeps it in one piece.
Is URL encoding here the same as JavaScript encodeURIComponent?
Very close when the character set is UTF-8. Query value mode calls encodeURIComponent and then also escapes ! ' ( ) and *, which that function leaves alone. Full URL mode matches encodeURI. Decode uses decodeURIComponent, after turning + into a space if you tick Spaces as +.
Should I encode the whole URL or just one parameter value?
Usually just the value. In Query value mode, encoding a complete link also escapes the :// and every /, which breaks it. Encode the piece that goes between = and &, or switch to Full URL mode when a whole link only needs its spaces and accented letters fixed.
Why do I get a malformed URL encoding error when decoding?
Decode found a % that is not followed by two hex digits, often a literal percent sign or a link cut off in the middle of an escape. The error gives the position. Replace a literal % with %25, or copy the full link again.
Why do some URLs use + instead of %20 for spaces?
HTML forms sent with the default application/x-www-form-urlencoded type encode spaces as +. In the path of a URL, + is just a plus sign. Tick Spaces as + only when you are working with form data or a query string built that way.
How do I fix double encoding like %2520 in a URL?
%2520 means a space was encoded twice: first to %20, then the % itself became %25. Click Decode. If the result still contains escapes, a Still percent-encoded notice appears with a Decode until clean button, which keeps decoding until none are left.
Can I read a tracking or UTM link with this URL decoder?
Yes. Paste the full link and the Query parameters table lists every key, such as utm_source or gclid, with its decoded value. Redirect links often carry a whole second URL as one parameter, and the table shows it in readable form. Copy as JSON gives all the parameters as one object.
What is percent-encoding?
It is the URL escaping scheme defined in RFC 3986. A character that is not allowed, or that has a special meaning, is replaced by % and two hex digits for each byte of its UTF-8 form. A space becomes %20 and é becomes %C3%A9.
Is URL encoding the same as Base64 or HTML encoding?
No. URL encoding makes text safe inside a link. Base64 turns bytes into a 64-character alphabet for transport, and HTML encoding turns characters like < and & into entities for web pages. Use the Base64 Decode and Encode tool or the HTML Encoder / Decoder for those jobs.
Why would I URL encode with a character set other than UTF-8?
Only for old systems. Some legacy forms and servers expect Latin-1 or Windows-1252, where é is %E9 instead of %C3%A9. If a decoded value shows odd characters such as é, the text was encoded in one set and decoded in another, so decode again with the other set.

More Developer tools

View all