0 字符
:
:
:
// 百分号编码的字符
| 字符 | 编码结果 |
|---|---|
| %20 | |
| ! | %21 |
| # | %23 |
| $ | %24 |
| & | %26 |
| + | %2B |
| / | %2F |
| : | %3A |
| = | %3D |
| ? | %3F |
| @ | %40 |
| é | %C3%A9 |
| 中 | %E4%B8%AD |
| 😀 | %F0%9F%98%80 |
// 在代码中进行 URL 编码
JavaScript encodeURIComponent(s) Python urllib.parse.quote(s, safe='') PHP rawurlencode($s) Go url.QueryEscape(s) Java URLEncoder.encode(s, StandardCharsets.UTF_8) curl curl --data-urlencode "q=hello world" URL
>> 更多问题
问:encodeURI 和 encodeURIComponent 有什么区别?
答:encodeURI 编码整个 URL,保留 : / ? # & = 等结构字符。encodeURIComponent 编码单个部分(如参数值),这些字符也会被转义。对查询参数值几乎总是应使用 encodeURIComponent。
问:为什么 中文 或 é 会变成多组 % 编码?
答:URL 传输的是字节。字符先按 UTF-8 编码(é 为 2 字节,中 为 3 字节,emoji 为 4 字节),每个字节写成 %XX,例如 é → %C3%A9。
问:什么是重复编码(%2520)?
答:对已编码的文本再次编码时,% 会变成 %25,%20 就变成 %2520。这通常是错误:拼接 URL 时每个值只应编码一次。