工具介绍
URL 编码(百分号编码)把 URL 中不允许出现的字符替换成 % 加十六进制字节值——空格变成 %20,"你"变成 %E4%BD%A0。没有它,空格、&、? 和中文等字符会破坏 URL 结构,或被服务器错误解析。
实际中有两种需求,本工具都支持:编码要放进查询参数里的值(组件模式——连 / ? & = 也编码),以及编码整个 URL 但保留其结构(完整 URL 模式——保留 :// ? & 不动)。
为什么使用它?
- 安全拼接查询字符串——含 &、= 或空格的用户输入不会破坏 URL。
- 解码日志、统计系统或跳转链里的长编码 URL,看清实际内容。
- 中文、emoji 按 UTF-8 标准正确转码,不乱码。
- 两种模式,避免误把整个 URL 的 : 和 / 也编码掉。
- 免费、即时、不上传数据。
使用方法
- 把文本或 URL 粘贴到输入框。
- 选择模式:编码查询参数值用"组件模式",编码整个 URL 用"完整URL模式"。
- 点"编码"或"解码"。
- 复制结果。
示例
输入
https://example.com/search?q=hello world & 你好输出
组件模式: https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%20%26%20%E4%BD%A0%E5%A5%BD
完整URL模式: https://example.com/search?q=hello%20world%20&%20%E4%BD%A0%E5%A5%BD组件模式连结构字符也编码;完整 URL 模式保留它们。
常见问题
什么时候用组件模式,什么时候用完整URL模式?
编码单个查询参数值时用组件模式(encodeURIComponent),它会把 /、?、&、= 都编码,防止破坏 URL 结构;编码完整 URL 时用完整URL模式(encodeURI),它保留结构字符让 URL 仍然可用。
空格为什么变成 %20 而不是 +?
两者在不同场景下都有效。%20 是通用的百分号编码;+ 表示空格只在旧式 application/x-www-form-urlencoded 格式的查询字符串里成立。本工具用 %20,在任何地方都正确。
为什么解码时报错?
输入里有格式错误的百分号序列,比如 % 后面没有跟两个十六进制字符。常见原因是 URL 被截断或被重复解码。修复或删掉损坏的 % 序列即可。
什么是双重编码?
对已编码文本再编码一次:%20 会变成 %2520,因为 % 本身被编码成 %25。这是常见 bug——如果解码结果里仍有 % 编码,再解码一次即可。
中文和 emoji 能正确处理吗?
能。文本按 UTF-8 字节编码,"你好"变成 %E4%BD%A0%E5%A5%BD,解码后完整还原——和浏览器的行为完全一致。