URL Encoder Encoders
Input
Output
Settings
Developer Guide
JavaScript
// Component encoding (for query parameters)
const encoded = encodeURIComponent('Hello World!');
console.log(encoded); // Hello%20World!
// Full URI encoding
const uri = encodeURI('https://example.com/path?name=John Doe');
console.log(uri); // https://example.com/path?name=John%20Doe
// Decoding
const decoded = decodeURIComponent('Hello%20World%21');
console.log(decoded); // Hello World!
// Building query strings
const params = {
search: 'web development',
category: 'tutorials'
};
const queryString = Object.entries(params)
.map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
.join('&');
Python
import urllib.parse
# Encoding
encoded = urllib.parse.quote('Hello World!')
print(encoded) # Hello%20World%21
# Full URL encoding with safe characters
url = urllib.parse.quote('https://example.com/path?name=John Doe', safe=':/?=&')
print(url) # https://example.com/path?name=John%20Doe
# Decoding
decoded = urllib.parse.unquote('Hello%20World%21')
print(decoded) # Hello World!
# Query string encoding
params = {'search': 'web development', 'category': 'tutorials'}
query_string = urllib.parse.urlencode(params)
print(query_string) # search=web+development&category=tutorials
PHP
// URL encoding (uses + for spaces)
$encoded = urlencode('Hello World!');
echo $encoded; // Hello+World%21
// Raw URL encoding (uses %20 for spaces)
$rawEncoded = rawurlencode('Hello World!');
echo $rawEncoded; // Hello%20World%21
// Decoding
$decoded = urldecode('Hello+World%21');
echo $decoded; // Hello World!
// Building query strings
$params = [
'search' => 'web development',
'category' => 'tutorials'
];
$queryString = http_build_query($params);
echo $queryString; // search=web+development&category=tutorials
URL Encoding Reference
Reserved Characters
| ! | %21 |
| # | %23 |
| $ | %24 |
| & | %26 |
| ' | %27 |
| ( | %28 |
| ) | %29 |
| * | %2A |
| + | %2B |
| , | %2C |
Common Characters
| Space | %20 or + |
| / | %2F |
| : | %3A |
| ; | %3B |
| = | %3D |
| ? | %3F |
| @ | %40 |
| [ | %5B |
| ] | %5D |
| % | %25 |
Best Practices
- Use encodeURIComponent for query parameter values
- Use encodeURI for complete URLs
- Always decode user input before processing
- Be consistent with + vs %20 for spaces
- Test with special characters