URL Encoder & Decoder
Encode and decode URLs, query parameters and form data. Supports Chinese, Emoji, batch processing and repeated decoding.
Auto-convert on input ▼
Keyboard Shortcuts
Ctrl/Cmd + Enter: Execute conversion
Ctrl/Cmd + Shift + C: Copy result
Alt + S: Swap input and output
Esc: Close error or example panel
URL Encoder & Decoder Tool
This tool can encode and decode complete URLs, URL components and form parameters. It supports Chinese characters, Emoji, batch content and repeated decoding. All processing happens locally in your browser.
What is URL Encoding?
Certain characters in URLs must be converted into a percent sign followed by two hexadecimal digits. Unicode characters such as Chinese or Emoji are first converted to UTF-8 bytes, then each byte is percent-encoded. For example, the Chinese character 中 becomes %E4%B8%AD.
encodeURI vs encodeURIComponent
encodeURI is designed for complete URLs and preserves structural characters like ://?&=#. encodeURIComponent is designed for individual query parameter values or path segments and encodes all special characters. When embedding one URL inside another URL’s parameter, always use encodeURIComponent.
%20 vs +
In standard percent encoding, spaces are represented as %20. In form encoding (application/x-www-form-urlencoded), spaces are represented as +. A literal plus sign should be encoded as %2B in form mode.
Examples
Original: 中文 测试 URL Component: %E4%B8%AD%E6%96%87%20%E6%B5%8B%E8%AF%95 Full URL: https://example.com/search?q=中文 测试 Encoded URL: https://example.com/search?q=%E4%B8%AD%E6%96%87%20%E6%B5%8B%E8%AF%95
Common Use Cases
- Building query parameters for API requests
- Handling Chinese or non-ASCII URLs
- Constructing callback and redirect URLs
- OAuth redirect URI encoding
- Analyzing server logs with encoded paths
- Debugging garbled text issues
- Nesting URLs inside URL parameters
- HTML form data submission
Limitations
- URL encoding is not encryption. Anyone can decode the result.
- Do not treat encoded content as encrypted or secure data.
- Different contexts require different encoding modes.
- Automatic repeated decoding may produce unexpected results.
- Maximum input length is 50,000 characters.
Data & Privacy
All URL encoding and decoding is performed entirely in your browser. No input content is sent to any server. Results are displayed as plain text and are never stored.
Frequently Asked Questions
Is URL encoding the same as encryption?▼
What is the difference between encodeURI and encodeURIComponent?▼
Why does Chinese text become so many percent signs?▼
Should spaces be encoded as %20 or +?▼
Why does a plus sign decode to a space?▼
Why does decoding show URI malformed?▼
Can I encode a URL twice?▼
How do I decode a repeatedly encoded URL?▼
Do #, ?, & and = need to be encoded?▼
Can I process multiple lines at once?▼
Is my input uploaded to a server?▼
Why does the encoded result become much longer?▼
All URL encoding and decoding is done locally in your browser. Your input is never uploaded to Qudo servers.