输入
输出
结果将显示在这里...工具介绍
把文字编成可以放进查询参数的形式,或把已编码的字符串解回来。适合处理参数值里的中文、空格和 &。不适合拿来编码一整条还想保持结构的网址。
编码调用 encodeURIComponent:UTF-8 字节写成 % 加两位十六进制,空格是 %20,不是 +。A–Z、a–z、0–9 以及 - _ . ! ~ * ' ( ) 留下,其余都编码,包括 : / ? # & =。解码调用 decodeURIComponent,遇到非法的 % 序列就提示失败。
计算示例
输入:编码 a b&中
输出:a%20b%26%E4%B8%AD
输入:解码 a%20b%26%E4%B8%AD
输出:a b&中
输入:编码整段 https://example.com/a?q=1 2
输出:https%3A%2F%2Fexample.com%2Fa%3Fq%3D1%202
使用限制
- 没有单独的「只编码参数、保留 ? 和 &」模式。要保留 URL 结构时不要把整段贴进来。
- 空格不会变成表单里常见的 +。如果对方按 application/x-www-form-urlencoded 解析,+ 和 %20 的约定不同。
- 解码不会把 + 当成空格。已经是合法百分号编码的片段可以单独解,不必凑成完整网址。连续编码两次时,第一次产生的 % 会在第二次变成 %25。
常见错误
- 对已经编码过的字符串再编码一次。% 会变成 %25,对方解一次后仍是百分号编码。
- 只想编码中文,结果斜杠和问号也被编码,链接无法再按路径拆开。
- 把查询串里的 + 贴进来解码,期望得到空格。这个页面会留下 +。
常见问题
「中」为什么是 %E4%B8%AD?▾
这是「中」的 UTF-8 三个字节 E4 B8 AD,每个字节前加 %。
和 encodeURI 有什么差别?▾
页面用的是 encodeURIComponent。encodeURI 会保留 : / ? #,这个页面不会。
失败时长什么样?▾
输出区会变成「解码失败:输入内容不是有效的 URL 编码」,例如单独一个 %。