URL Encoder / Decoder

Percent-encode and decode URLs instantly. Choose component or full-URL mode, toggle form (+) encoding, and keep every character — Korean, emoji, CJK — intact. Nothing leaves your browser.

Encoding scope

Component encodes reserved characters like ? & = / # — use it for query values and path segments. Full URL keeps those structural characters intact for encoding a whole address.

Type in either box — the other updates instantly. Encoding is UTF-8 safe, so Korean, CJK and emoji round-trip perfectly.

자주 묻는 질문

What is URL encoding (percent-encoding) and when do I need it?

URL encoding, also called percent-encoding, replaces characters that have a special meaning in a URL — or that aren't allowed at all — with a % followed by their byte value, like a space becoming %20. RFC 3986 reserves characters such as ? & = # / : because they mark the boundaries of a URL. Whenever you put arbitrary text into a query string, path segment or fragment, url encode it first so those reserved characters don't break the link; url decode reverses it.

Component vs Full URL — encodeURIComponent vs encodeURI, which mode should I pick?

Pick Component (encodeURIComponent) when you're encoding a single piece of a URL — one query-parameter value, a path segment or a fragment — because it also escapes the reserved characters ? & = / # that would otherwise be mistaken for structure. Pick Full URL (encodeURI) when you have an already-assembled address and only want to escape spaces and illegal characters while leaving :// ? & = # intact. Choosing the wrong scope is the most common URL-encoding mistake, which is why this url encoder decoder online lets you switch.

Why is a space sometimes %20 and sometimes + ?

Both are valid, but they come from different rules. In a generic URL a space is percent-encoded as %20. Inside an HTML form submitted as application/x-www-form-urlencoded, a space is written as +. Turn on the Form encoding (space → +) toggle when you're building or reading form-style query strings; leave it off for strict RFC 3986 percent encoding. When decoding, the toggle turns + back into a space.

Why do Korean, emoji and other non-ASCII characters encode correctly here?

Because encoding runs on UTF-8 bytes. encodeURIComponent first converts each character to its UTF-8 byte sequence and then percent-encodes those bytes, so Korean (한글), Japanese, Chinese and emoji become valid %XX%XX sequences and decode back to exactly the original text — no mojibake. That makes this a reliable URL 인코더 디코더 for any language, not just ASCII.

Is my text or URL sent to a server?

No. All encoding and decoding happens 100% in your browser with the built-in encodeURIComponent/encodeURI and decodeURIComponent/decodeURI functions — nothing is uploaded and there are no external requests. Only your last text plus your mode and form-encoding choices are saved to this browser's local storage for convenience; clear the box or your site data to remove them.