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 时每个值只应编码一次。