%20URL Encode/Decode
Encode or decode URL components
URL Encoding Complete Guide
URL encoding (Percent Encoding, RFC 3986) converts characters that are not allowed in URLs into %XX format. Essential for safely transmitting URLs with non-Latin scripts, spaces, or special characters — used everywhere in web: search queries, API calls, form submissions.
Percent Encoding Rules
Each byte is represented as %HH (H = hexadecimal digit). A single Korean character takes 3 bytes in UTF-8, becoming 9 encoded characters. Example: '안녕' → %EC%95%88%EB%85%95
Reserved Characters vs Safe Characters
- Reserved: have special meaning in URL structure (
: / ? # [ ] @ ! $ & ' ( ) * + , ; =) — preserved by encodeURI - Unreserved (safe): can be used without encoding (
A-Z a-z 0-9 - _ . ~) - All other characters must be percent-encoded
encodeURI vs encodeURIComponent
| Character | encodeURI | encodeURIComponent |
|---|---|---|
| space | %20 | %20 |
| / | / (preserved) | %2F |
| ? | ? (preserved) | %3F |
| & | & (preserved) | %26 |
| = | = (preserved) | %3D |
| # | # (preserved) | %23 |
→ Use encodeURI for full URLs, encodeURIComponent (Component option) for query values/path segments
URL Encoding vs Base64 Encoding
These serve different purposes. Percent encoding makes unsafe URL characters safe. Base64 converts binary data to ASCII text. Use Base64 to embed images/files in URLs (data URIs); use encodeURIComponent for safely passing values in query parameters.
3 Modes
- Encode: text → URL-safe format (space → %20)
- Decode: %XX → restore original characters
- Parse Query: parse URL query string as JSON (?a=1&b=2 → {"a":"1","b":"2"})