URL Encoder & Decoder

Encode or decode URLs and query strings instantly — free and private

Instant results | 100% client-side
Mode
Encoding Method

Quick Reference

  • Encode converts special characters to percent-encoded format
  • Decode converts percent-encoded strings back to readable text
  • Component encodes everything for query params
  • URI preserves URL-safe characters like : / ? #

Common Use Cases

  • Building search query strings
  • Form data in API requests
  • Sharing URLs with special characters
  • Debugging encoded redirect URLs

100% Private

All encoding and decoding happens locally in your browser. No data is ever sent to any server.

What Is URL Encoding?

Understanding percent-encoding and why it matters for the web

URL encoding, formally known as percent-encoding, is a mechanism defined in RFC 3986 for encoding characters that are not allowed or have special meaning in a Uniform Resource Identifier (URI). Each unsafe character is replaced with a percent sign (%) followed by two hexadecimal digits that represent the character's byte value in UTF-8.

URLs can only contain a limited set of characters from the US-ASCII character set. Characters like spaces, ampersands, question marks, and non-Latin letters must be encoded so they can be safely transmitted in URLs without being misinterpreted by browsers, servers, or intermediary systems.

Safe Transmission

URLs travel through many systems — browsers, proxies, servers, and load balancers. Percent-encoding ensures that special characters are not misinterpreted as URL delimiters or control characters during transit.

Query Parameters

When building query strings, values that contain characters like &, =, or ? must be encoded to prevent them from being parsed as parameter separators or other URL components.

International Characters

URLs only support ASCII characters. Non-Latin scripts, emojis, and accented letters are first converted to their UTF-8 byte sequences, then each byte is individually percent-encoded for universal compatibility.

Common URL-Encoded Characters

A quick reference table for frequently encoded characters in URLs

Character Encoded Description
(space) %20 Space character
& %26 Ampersand — query parameter separator
= %3D Equals sign — key-value separator
? %3F Question mark — query string start
# %23 Hash — fragment identifier
/ %2F Forward slash — path separator
@ %40 At sign — used in email and userinfo
+ %2B Plus sign — sometimes used for spaces in forms
% %25 Percent sign — the escape character itself

Unreserved characters that do not need encoding: A-Z a-z 0-9 - _ . ~. These are safe to use in any part of a URL without percent-encoding.

Frequently Asked Questions

Common questions about URL encoding and decoding

URL encoding (percent-encoding) is used to convert characters that are not allowed in URLs into a safe, transmittable format. Common uses include building query strings with special characters, sharing links that contain spaces or non-Latin characters, encoding form data submitted via HTTP, and constructing API request URLs with dynamic parameter values.
encodeURI is designed for encoding a complete URL. It preserves characters that have special meaning in URLs such as :, /, ?, #, &, and =. encodeURIComponent encodes all special characters, making it ideal for encoding individual query parameter values where those characters must not be interpreted as URL syntax.
In standard percent-encoding defined by RFC 3986, spaces are encoded as %20. However, in the older application/x-www-form-urlencoded format used by HTML forms, spaces are represented as +. Both are widely understood, but %20 is the more universal and modern standard. This tool uses %20 for spaces.
Yes. This tool runs entirely in your browser using JavaScript. No data is transmitted to any server. Your input and output remain completely private on your device. You can verify this by disconnecting from the internet and confirming the tool still works.
Yes. Non-ASCII characters such as accented letters (e.g. cafe), Chinese or Arabic text, and emojis are first encoded as UTF-8 byte sequences. Each byte is then individually percent-encoded. For example, the emoji "smile" becomes a series of %XX sequences. This tool handles all Unicode characters correctly using the browser's native encoding functions.