空格、+ 和 % 的 URL 编码
空格、+ 和 % 这三个字符的编码结果因方式而异。本表并排比较 encodeURIComponent、encodeURI 和表单提交三种方式。
本表字符数:3
编码表
| 方式 | 空格 | + | % | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
encodeURI| %20 | %2B | %25 | encodeURI | %20 | + | %25 | 表单提交 | + | %2B | %25 | 码位 | U+0020 | U+002B | U+0025 | UTF-8
(十六进制) | 20 | 2B | 25 | RFC 3986
分类 | 其他 | 保留字符 (sub-delims) | 其他 | |
编码结果是用 JavaScript 的 encodeURIComponent 逐个转换字符得到的值。对于被编码的字符,其 UTF-8 的每个字节写成 % 加 2 位十六进制数。
分类依据 RFC 3986。非保留字符可以直接用于 URL。保留字符用于分隔 URL 的各个部分,其中 ! ' ( ) * 不会被 encodeURIComponent 转换。其他字符一律会被编码。
表单提交 (application/x-www-form-urlencoded) 会把空格变成 +,把 + 本身变成 %2B。encodeURI 和 encodeURIComponent 会把空格变成 %20。
转换任意文本
表中没有的字符或整段文字,可以用 URL 编码 / 解码工具即时转换。
打开 URL 编码 / 解码工具