How to URL Encode Special Characters
Encode characters that are unsafe in URLs so they can be transmitted correctly in query strings.
Problem
Your URL contains spaces, ampersands, or other special characters that break the query string structure.
Prerequisites
- Basic knowledge of URL structure
- Understanding of percent-encoding
Steps
-
1. Identify unsafe characters
Characters like space, &, =, ?, #, and + have special meaning in URLs. Leaving them unencoded will change how the server parses the query string. Review your input and flag every reserved or non-ASCII character.
Inputname=John Doe & Co.Outputunsafe: space, & -
2. Percent-encode each character
Replace each unsafe character with a percent sign followed by its two-digit UTF-8 hex byte. A space becomes %20, an ampersand becomes %26, and a non-ASCII character may produce multiple percent sequences.
Inputname=John Doe & Co.Outputname=John%20Doe%20%26%20Co. -
3. Verify the encoded URL
Paste the encoded URL into a browser or HTTP client. The server should receive the original string exactly. If any character is still raw, the encoding was incomplete.
Inputname=John%20Doe%20%26%20Co.Outputserver receives: name=John Doe & Co.
Expected result
A fully percent-encoded URL that any standards-compliant server can parse without ambiguity.
Common errors
- Encoding the entire URL including the scheme and host
- Only encode the query parameter values and path segments, not the protocol or domain.
- Double-encoding an already-encoded string
- Check for existing % sequences before encoding. Decode first if you need to re-encode.
Troubleshooting
- If the server receives literal %20 instead of a space, the string was double-encoded.
- Use encodeURIComponent in JavaScript for query values, not encodeURI.
Security limits
- URL encoding prevents parsing errors but does not prevent injection. Validate and sanitize all input on the server side.
Related tools
Related glossary
Related tasks
Ready to run it?