Encode and decode URLs.
Paste a URL or component and safely encode or decode special characters in a click.
- Liveencodes as you type
- 2 modesone value or a whole URL
- UTF-8for letters outside ASCII
Loading the tool…
How it works
From raw text to a safe URL in three steps.
Paste the text
Paste a URL, a query value or encoded text. Encode and Decode set the direction.
Pick a mode
Component escapes : / ? # & = for a single value. Full URL leaves them alone so the address keeps its shape.
Copy the result
The output updates with every change, and Copy output puts it on your clipboard.
In the encoder
What the URL encoder does.
- Encodes as you type
The result updates with every change.
- Decodes too
Turn percent-encoding back into readable text.
- Component mode
Escapes : / ? # & = for one query value or path segment.
- Full URL mode
Leaves the characters that give a URL its structure in place.
- UTF-8
Letters outside ASCII become percent-encoded UTF-8 bytes.
- Explained errors
A % without two hex digits after it is explained, not guessed at.
- Plus signs left alone
Decoding keeps + as it is rather than turning it into a space.
- Structure kept
Full URL decoding leaves %26 and %2F encoded.
- Character count
The input's length updates as you type.
- Copy output
One click puts the result on your clipboard.
- Stays in the page
Nothing you type is sent to a server.
What you see
A URL before and after encoding.
Full URL mode keeps the scheme, the slashes and the query string working, and escapes only what a URL cannot carry. Here that is an é, an ê and a space.
- The address keeps its structure
- é becomes %C3%A9
- Updates as you type
URL encoding
Why encode URLs here.
A space, an ampersand or an accented letter has to be percent-encoded before it can sit in a URL, and escaping the wrong characters breaks the link. Component mode is for one piece of a URL, such as a search term going into a query string, so it escapes : / ? # & = too. Full URL mode leaves those in place so the address keeps its structure.
A parameter carrying Base64 can go straight into a Base64 decoder that handles UTF-8. A login token in a redirect's query string reads better in the JWT header and payload reader. A JSON value shows its structure in a collapsible JSON tree viewer.
The encoder is free and needs no account. On the Free plan, 10 links stay live until you delete them, and the paid plans lift that cap.
Guides
Other jobs worth doing here.
Frequently asked questions
What's the difference between encoding a component and a full URL?
Component mode escapes everything except letters, digits and - _ . ! ~ * ' ( ), so slashes, ampersands and equals signs are encoded. Full URL mode leaves those structural characters alone, so the scheme, the path and the query string keep working.
Does this handle non-English characters?
Yes. Each character outside ASCII becomes its UTF-8 bytes, percent-encoded, so é becomes %C3%A9. Decoding turns them back.
Is anything sent to a server?
No. The conversion runs in this page and makes no request with your text.
Is the URL encoder free?
Yes. Encoding and decoding need no account and cost nothing, and there is no limit on how often you use them.
Why is my + not turning into a space?
The decoder follows the percent-encoding rules, where + is an ordinary character. HTML forms write spaces as +, so a query string from a form keeps its plus signs here. Replace them with %20 first if you need spaces back.
What does the error about % mean?
Every % has to be followed by two hexadecimal digits. A lone %, or one followed by anything else, stops the decode and the tool explains why. A literal percent sign is written as %25.
Why did Full URL mode leave %26 encoded?
Decoding %26 would turn it into &, which would split one query value into two. Full URL mode keeps the escapes of structural characters as they are, so the address means the same thing. Component mode decodes them all.
What happens if I encode text that is already encoded?
It is encoded again. Each % becomes %25, so %20 turns into %2520. Decode first if you are not sure which you have.
Can it encode several URLs at once?
It treats the box as one piece of text, and a line break is encoded as %0A in both modes. Paste one URL at a time when each needs its own result.
Does the encoder keep my text?
No. The text lives in this page while it is open, and nothing is saved in the browser or sent anywhere.
Is percent-encoding a form of encryption?
No. It only rewrites characters a URL cannot carry, and anyone can reverse it. Do not rely on it to hide a value.
Should I encode a whole URL with Component mode?
Not if you want it to keep working as a link. Component mode escapes the slashes, the colon after https and the ? before the query, so the result reads as one value. Use it for a URL that goes inside another URL's query string, such as a redirect address.
How is a space encoded?
Both modes write a space as %20. A + for a space belongs only in form data, and this tool never writes one.
What is percent-encoding?
Each byte that cannot appear in a URL as it is gets written as % and two hexadecimal digits. A space is %20, and é, which is two bytes in UTF-8, becomes %C3%A9.
What about a # inside a query value?
In Component mode # becomes %23, so it stays part of the value. Left as # in a URL, it would start the fragment and cut the value short.
Which part of a URL needs encoding?
Any part holding text that can contain spaces, accents or symbols, most often a query value or a path segment. The scheme, the domain and the separators between the parts stay as they are.
Does it change upper and lower case?
No. Letters keep their case, and the hex digits the encoder writes are upper case, as in %C3%A9. Decoding accepts either case.
Why is the encoded text longer?
Each escaped byte takes three characters, so a space grows to %20 and an accented letter to six characters. Text in a script that uses more bytes per letter grows more.
Does it check that the URL works?
No. It encodes or decodes whatever text you give it and does not check that the result is a working address. A typo in the domain stays a typo.
Is there a length limit?
No. The box takes text of any length, and the result updates as you type.
Can I decode a whole query string?
Yes. Choose Decode with Component mode and every escape turns back into its character, %26 and %3D included. The & and = signs that come back no longer show where each value ends, so read the result rather than reuse it.
How do I encode a path with slashes in it?
Use Full URL mode, which keeps the slashes. Component mode turns each / into %2F, which is right for a single path segment and wrong for a whole path.
Does it encode an apostrophe?
No. The ' is one of the characters both modes leave alone, along with ( ) ! ~ and *. Write it as %27 by hand if the place you paste the URL needs it escaped.
Get file-sharing tips that actually help.
One email a month. No spam, no fluff.
Ready to try the dev tools?
Free forever, no credit card needed. The whole thing takes a few seconds.