No upload, 100% local, no account

URL Encoder / Decoder

Encode special characters in URLs, or decode percent-encoded strings. Everything stays in your browser.

How URL Encoder / Decoder works

URL Encoder / Decoder converts strings to and from percent-encoding (also called URL encoding), the format required by RFC 3986 for including special characters safely in URLs. Paste a raw string to encode it, or paste a percent-encoded string to decode it back to human-readable form. The conversion runs entirely in the browser using JavaScript's encodeURIComponent and decodeURIComponent; nothing you type leaves your device.

URL encoding matters whenever you build query parameters, redirect URIs, or canonical links programmatically. A space becomes %20, an ampersand %26, a hash %23, and so on. Encoding also applies to internationalized domain names and non-ASCII characters in path segments. This tool also offers encodeURI mode for encoding full URIs while preserving structural characters like '/', '?', and '#'.

How to use URL Encoder / Decoder, step by step

  1. Paste the text you want to encode or decode into the input area.
  2. Select 'Encode' to percent-encode the text, or 'Decode' to reverse the encoding.
  3. Choose 'encodeURIComponent' mode for query-parameter values, or 'encodeURI' mode for full URIs.
  4. Copy the result from the output area.

Common use cases

  • A developer building a search redirect URL needs to percent-encode the query string so special characters do not break the URL structure.
  • An API integrator receives a percent-encoded callback URL in a webhook payload and needs to decode it to verify the target address.
  • A content editor copies a URL containing accented characters from a browser and needs to encode it for use in a Markdown link.
  • A QA engineer tests an input validation endpoint by encoding boundary characters like '<', '>', and '&' before submitting them.

Frequently asked questions

What is the difference between encodeURIComponent and encodeURI?

encodeURIComponent encodes everything except letters, digits, and the characters - _ . ! ~ * ' ( ). It is for encoding individual components such as query parameter values. encodeURI leaves structural URI characters (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) unencoded because it assumes the input is a complete URI. Use encodeURIComponent for values, encodeURI for whole URLs.

Is the text I paste here transmitted to any server?

No. The encoding and decoding call JavaScript's built-in encodeURIComponent and decodeURIComponent functions, which run entirely in the browser's JavaScript engine. Nothing you type here is sent anywhere.

Why does a space sometimes become '+' instead of '%20'?

The '+' notation for spaces comes from the older application/x-www-form-urlencoded format used in HTML form submissions, which is different from RFC 3986 percent-encoding. This tool uses strict RFC 3986 percent-encoding, so spaces become %20. If your target system expects '+' for spaces, you will need to replace %20 with '+' manually after encoding.

Can I encode a full URL including its query string at once?

Yes, using 'encodeURI' mode. That mode preserves '/', '?', '=', '&', '#', and other URL structural characters while encoding non-ASCII and reserved characters that appear in segment or parameter values. Use 'encodeURIComponent' only on individual parameter values, not the full URL.

Does this tool handle Unicode characters and emoji?

Yes. JavaScript's encodeURIComponent first converts the character to its UTF-8 byte sequence, then percent-encodes each byte. An emoji like 'thumbs up' encodes to a multi-byte sequence such as %F0%9F%91%8D. Decoding reverses the process correctly.