如何URL Encode 特殊 Characters
编码 characters that are unsafe in URLs so they can be transmitted correctly in query strings.
问题
你的 URL contains spaces, ampersands, 或其他特殊 characters 该 break 查询字符串结构.
前置条件
- 基础知识的 URL 结构
- Understanding 的 percent-编码
步骤
-
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.
输入name=John Doe & Co.输出unsafe: 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.
输入name=John Doe & Co.输出name=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.
输入name=John%20Doe%20%26%20Co.输出server receives: name=John Doe & Co.
预期结果
fully percent-encoded URL 该任何 standards-compliant 服务器能够解析无 ambiguity.
常见错误
- 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.
排障指引
- If the server receives literal %20 instead of a space, the string was double-encoded.
- Use encodeURIComponent in JavaScript for query values, not encodeURI.
安全限制
- URL encoding prevents parsing errors but does not prevent injection. Validate and sanitize all input on the server side.