URL Encoder & Decoder
Encode special characters for safe URL transmission, or decode percent-encoded strings back to readable text — instantly, in your browser.
🔒 Nothing leaves your device. All encoding and decoding happens locally on this page.
About this tool
This free URL encoder/decoder converts text to percent-encoded format for safe use in URLs, or decodes percent-encoded strings back to readable text. Everything runs locally in your browser — nothing is uploaded, stored or sent anywhere.
Full mode vs. Partial mode
Full mode (encodeURIComponent): Encodes every character that has special meaning in a URL, including &, +, /, =, ?, and #. Use this for query parameter values and form data.
Partial mode (encodeURI): Preserves the structural parts of a URL (/, ?, #, &, =) while encoding other special characters. Use this when encoding a full URL that should remain valid.
Common uses
- Query parameters: Encode search terms, user input or special characters in
?q=...parameters - API calls: Safely embed strings in REST or GraphQL endpoint URLs
- Debugging: Decode percent-encoded URLs to inspect what the server actually receives
- Web scraping: Build properly encoded URLs for automated requests
- HTML forms: Verify what form data looks like after URL encoding
FAQ
What is URL encoding? URL encoding (percent-encoding) replaces unsafe ASCII characters with a % followed by two hexadecimal digits. For example, a space becomes %20.
Why encode URLs? URLs can only contain a limited set of ASCII characters. Characters like spaces, &, ?, and non-ASCII characters must be encoded to be transmitted safely over the internet.
What's the difference between encodeURI and encodeURIComponent? encodeURI() leaves URL structure characters (/, ?, #) alone, while encodeURIComponent() encodes everything. For query parameter values, always use the "Full" (encodeURIComponent) mode.
Does this work with non-ASCII characters like æøå or emoji? Yes. The browser's built-in encodeURIComponent and decodeURIComponent functions handle UTF-8 encoding natively, so characters like æ, ø, å, 日本語 and 😀 encode correctly.