URL Encoder/Decoder
Encode special characters for safe URL transmission. Essential for query strings, API parameters, and web development.
100% Free β Instant and accurate.
URL Encoder/Decoder
Common Use Cases
Search Queries
Encode user search terms for safe inclusion in URLs and API calls.
API Parameters
Safely pass data in REST API query strings and POST bodies.
Share Links
Create shareable URLs with encoded titles, descriptions, or user data.
mailto: Links
Encode email subjects and bodies for mailto: URL parameters.
URL Encoding Reference
URL encoding (percent encoding) converts characters that aren't allowed in URLs into a format that can be safely transmitted. Special characters are replaced with % followed by two hexadecimal digits.
Common Encodings
β %20 or +β %21β %23β %24β %26β %27β %28β %29β %3Dβ %3Fβ %40Example
Original: Hello World!?&name=John Doe
Encoded: Hello%20World%21%3F%26name%3DJohn%20Doe
URL Encoding in Code
// For query parameter values (encodes everything)
const query = encodeURIComponent('Hello World!?');
// Result: "Hello%20World!%3F"
// For full URLs (preserves :, /, ?, #, etc.)
const url = encodeURI('https://example.com/search?q=hello world');
// Decode
const decoded = decodeURIComponent('Hello%20World');
// Result: "Hello World"from urllib.parse import quote, unquote, urlencode
# Encode a string
encoded = quote('Hello World!?')
# Result: "Hello%20World%21%3F"
# Encode query parameters
params = urlencode({'q': 'hello world', 'page': 1})
# Result: "q=hello+world&page=1"
# Decode
decoded = unquote('Hello%20World')
# Result: "Hello World"// For query strings (space = +)
$encoded = urlencode('Hello World!?');
// Result: "Hello+World%21%3F"
// RFC 3986 compliant (space = %20)
$raw = rawurlencode('Hello World!?');
// Result: "Hello%20World%21%3F"
// Decode
$decoded = urldecode('Hello%20World');
// Result: "Hello World"import "net/url"
// Encode query parameter
encoded := url.QueryEscape("Hello World!?")
// Result: "Hello+World%21%3F"
// Encode path segment
pathEncoded := url.PathEscape("Hello World")
// Result: "Hello%20World"
// Decode
decoded, _ := url.QueryUnescape("Hello%20World")
// Result: "Hello World"Frequently Asked Questions
When should I encode URLs?
Always encode user input, search queries, or any data used in query strings, paths, or parameters. This prevents breaking URLs and security issues.
What's the difference between %20 and +?
Both represent spaces. %20 is the RFC 3986 standard (universal), while + only works in query strings (application/x-www-form-urlencoded). Use %20 for paths.
encodeURI vs encodeURIComponent?
encodeURI() preserves URL structure characters (:, /, ?, #). encodeURIComponent() encodes everything except alphanumerics. Use the latter for parameter values.
Do I need to encode the entire URL?
No. Only encode the dynamic parts (query values, path segments). The URL structure (protocol, host, slashes) should remain unencoded.
What about non-ASCII characters?
Non-ASCII characters (Γ©, δΈζ, ζ₯ζ¬θͺ) are first converted to UTF-8 bytes, then each byte is percent-encoded. Modern browsers handle this automatically.
Is double encoding a problem?
Yes. Encoding already-encoded text creates issues like %2520 (encoded %20). Always decode first if unsure, then encode once.