← Back to tools

URL Encoder / Decoder

Encode special characters for URLs or decode percent-encoded strings.

Input
Output
Quick test: URL with spaces Encoded URL Query string

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

Frequently asked questions

How do I URL-encode a string online?

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.

What is the difference between encodeURI and encodeURIComponent?

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.

How do I decode a URL-encoded string?

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.

Why do I see %20 or + for spaces in URLs?

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.

Do I need to URL-encode query parameters manually?

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.