URL Encoder/Decoder: Percent-Encoding Safely
URLs allow only certain characters — letters, digits, and a few punctuation marks. Spaces, special symbols, and non-ASCII characters need to be 'percent-encoded' as %20, %3F, %ED%95%9C, etc. This tool handles the conversion both ways.
URL encoding (percent-encoding) replaces unsafe characters with %xx where xx is the character's hex byte value. Space becomes %20, ? becomes %3F. Korean characters like 한 take three bytes in UTF-8 and become %ED%95%9C. Without encoding, browsers and servers parse URLs incorrectly.
Characters that always need encoding
- •Space → %20 (or + in form-encoded URLs)
- •? & = # — they have URL meaning
- •Non-ASCII (Korean, Chinese, accented characters) — UTF-8 then percent-encoded
- •Reserved chars in path: /, ?, #
- •Reserved chars in query: =, &
Extended FAQ
Why does + appear instead of %20?
+ is shorthand for space in 'application/x-www-form-urlencoded' — used in form submissions and query strings. In path components, %20 is required.
Should I encode the entire URL or just parts?
Just the parts that need it. Encoding the entire URL turns / into %2F and breaks the path. Most code uses encodeURIComponent() for parameter values, encodeURI() for whole URLs.
Are my URLs stored?
No — runs entirely in your browser.
