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.

Output Waiting for input…

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.