Encode special characters for URLs or decode percent-encoded strings.
URLs can only contain a limited set of ASCII characters. Special characters like spaces, ampersands, question marks, and non-ASCII characters (accented letters, emoji, CJK characters) must be percent-encoded — replaced with % followed by their hexadecimal byte value.
For example, a space becomes %20, an ampersand becomes %26, and the Japanese character あ becomes %E3%81%82 (its UTF-8 bytes). Without encoding, these characters would break URL parsing — a & would be interpreted as a query parameter separator instead of a literal character.
This tool uses JavaScript's encodeURIComponent() for encoding and decodeURIComponent() for decoding. These functions handle the full Unicode range and are the standard way to prepare values for URL query strings, form submissions, and API requests.
This tool in other languages:
Français:
Encodeur et décodeur d'URL
Español:
Codificador y decodificador de URL
Deutsch:
URL-Encoder und Decoder
Português:
Codificador e decodificador de URL
日本語:
URLエンコーダー&デコーダー
中文:
URL 编码解码工具
한국어:
URL 인코더 및 디코더
العربية:
مشفر ومفكك عناوين URL
Paste the text into the input box and click Encode →. Special characters like spaces, ?, &, /, and Unicode characters are replaced with their percent-encoded equivalents (e.g. space becomes %20). Click Copy to grab the result.
encodeURI preserves characters that have special meaning in a full URL (like :, /, ?, &) — use it when encoding a complete URL. encodeURIComponent encodes those too — use it for individual query string values or path segments. This tool supports both modes.
Paste the percent-encoded string into the input and click ← Decode. Sequences like %20, %3F, and %C3%A9 are converted back to their original characters (space, ?, é). Works for both encodeURI and encodeURIComponent output.
Both represent a space. %20 is the standard percent-encoding used in URL paths. + is used in application/x-www-form-urlencoded query strings (HTML form submissions). Modern URLs generally use %20 everywhere, which is what this tool produces.
If you're building URLs programmatically, most languages have built-in functions (encodeURIComponent in JS, urllib.parse.quote in Python, URLEncoder in Java). This tool is for quick one-off encoding — debugging API calls, building test URLs, or inspecting what a parameter looks like after encoding.