把中文、空格、特殊符号转换成百分号编码(percent-encoding),或把 URL 还原成可读文本。三种模式随时切换,输入即转换。所有处理在浏览器本地完成。
| 模式 | 不转义哪些字符 | 典型用途 |
|---|---|---|
encodeURIComponent |
仅 A-Z a-z 0-9 - _ . ! ~ * ' ( ) |
查询参数的值、路径片段。最常用 |
encodeURI |
上述字符 + ; , / ? : @ & = + $ # |
编码一整条 URL,保留其结构符号 |
decodeURIComponent |
— | 把 %E4%B8%AD 这类编码还原成原文 |
最常见的误用:用 encodeURI 去编码参数值。因为它不转义 & 和 =,参数值里含有这些符号时会破坏 URL 结构。参数值请一律使用 encodeURIComponent。
| 原字符 | 编码后 | 说明 |
|---|---|---|
| 空格 | %20 | 在查询串里也常被写成 +,但那是 application/x-www-form-urlencoded 的约定,不是 URL 标准本身 |
| 中 | %E4%B8%AD | UTF-8 三个字节,每个字节一个百分号 |
| & | %26 | 参数分隔符,出现在值里必须转义 |
| = | %3D | 键值分隔符,出现在值里必须转义 |
| ? | %3F | 查询串起始符 |
| # | %23 | 片段标识符,不发给服务器 |
| / | %2F | 路径分隔符;在参数值里转义可避免被当作路径 |
| + | %2B | 本身是合法字符,但表单编码中代表空格,容易混淆 |
%,或百分号后不是两位十六进制(如 %ZZ、%E4%B8 被截断)。本工具会捕获该错误并在下方提示,而不会让页面崩掉。%XX%XX%XX,即 9 个 ASCII 字符,长度约为原文的 3 倍。这也是查询串不宜塞入大段中文的原因。%20。+ 表示空格只适用于表单提交(application/x-www-form-urlencoded)。本工具输出 %20,这是更安全的选择。://、/、? 也转义掉,得到的字符串不再是可用链接。正确做法是只对参数值逐个编码。encodeURIComponent / decodeURIComponent 完成。