url 2025-01-28
URL 编码:为什么它对 Web 开发很重要
理解 URL 编码(百分号编码)、保留字符以及 Web 开发中的常见陷阱。
URL 编码(也称为百分号编码)是在 URI 中编码信息的机制。它对于确保 URL 在互联网上正确传输至关重要。
为什么 URL 需要编码
URL 只能包含有限的 ASCII 字符集。此集合之外的字符或在 URL 中具有特殊含义的字符必须进行编码。
保留字符
这些字符在 URL 中有特殊含义,作为数据使用时必须编码:
: / ? # [ ] @ ! $ & ' ( ) * + , ; =
encodeURI() vs encodeURIComponent()
- encodeURI():编码完整 URI,保留 URI 结构的特殊字符
- encodeURIComponent():编码 URI 组件,编码所有特殊字符
经验法则:对参数值使用 encodeURIComponent(),对完整 URL 使用 encodeURI()。
常见陷阱
1. 双重编码
对已编码的字符串进行编码会产生错误结果。
2. 空格编码
%20用于路径段+用于查询字符串
3. Unicode 字符
现代浏览器在地址栏显示 Unicode,但实际 URL 是编码的。
最佳实践
1. 在 URL 中包含用户输入之前始终进行编码
2. 对查询参数值使用 encodeURIComponent()
3. 注意空格编码的差异
4. 用非 ASCII 字符测试
5. 不要在没有编码的情况下通过字符串拼接构建 URL
使用我们的 URL 编码器/解码器工具即时编码和解码 URL。