URL Encoder
Encodes characters that cannot appear directly in a URL into percent-encoded form.
How to use the URL Encoder
- Put the single value or path piece you want encoded into the input box.
- The output box updates as you type, showing the percent-encoded form.
- Press the copy button and drop the result into the URL where it belongs.
Encode one piece of a URL, not the whole address
This escapes the delimiters that hold an address together, so a full URL fed through it comes back as https%3A%2F%2Fexample.com and stops working. Run it on one query value or one path segment, then build the address around the result.
| Character | Becomes |
|---|---|
| space | %20 |
| / | %2F |
| ? | %3F |
| & | %26 |
| = | %3D |
| # | %23 |
Letters, digits and - _ . ~ ! * ' ( ) pass through unchanged.
Non-Latin text becomes one group per UTF-8 byte
Anything outside that unchanged set is turned into UTF-8 bytes, and each byte is written as a percent sign with two hex digits. A Hangul syllable takes three bytes, arriving as %ED%95%9C, and an emoji takes four.
Frequently asked questions
Does it handle non-Latin text?
Yes. Korean, Japanese, Arabic and other scripts are encoded to UTF-8 percent sequences.
Can it decode?
This page encodes only.
Should a space be %20 or a plus sign?
This page always writes %20, which is right in a path or a query value. Only form data sent as x-www-form-urlencoded uses a plus for a space.
Why is my apostrophe left alone?
Because ! * ' ( ) and ~ are left untouched along with letters, digits and - _ . Replace them by hand if a server rejects the address.
How do I turn an encoded string back?
Not on this page, which encodes only. Run decodeURIComponent on the string in a browser console and the percent groups become readable again.