URL 编码与解码

把文本转换为可用于 URL 的百分号编码,或将编码后的 URL 解码为可读文本。

功能特性

自动判断编码方向
组件级编码
整条 URL 编码

使用方法

1. 选择「编码」或「解码」。

2. 把 URL 或文本粘贴到输入框。

3. 结果会实时显示在右侧 —— 点击「复制」即可。

关于这个工具

网址只能包含有限的字符,所以值里的空格、中文等非英文字符以及 &、= 这类符号,都必须按字节进行百分号编码,比如 %20 或 %E4%BD%A0。这个工具提供两种与 JavaScript 自带函数对应的编码和解码模式。组件模式(encodeURIComponent)会编码除字母、数字和 - _ . ! ~ * ' ( ) 之外的所有字符,适合单个查询参数值或路径片段。完整网址模式(encodeURI)保留构成网址结构的字符——: / ? # & =——适合整理整个地址。文本按 UTF-8 编码;如果输入看起来已经编码过,工具会自动切换为解码。

常见问题

什么时候用组件模式,什么时候用完整网址模式?
要把某个值放进网址时用组件模式,比如搜索词,或查询字符串中的跳转地址。只有当你想让一个完整地址合法、又不破坏其结构时,才用完整网址模式。
为什么空格有时是 +,有时是 %20?
%20 是网址中空格的标准编码。+ 来自查询字符串中使用的 HTML 表单编码(application/x-www-form-urlencoded)。本工具使用 %20;解码表单数据时,请先把 + 替换成空格。
中文、阿拉伯文或表情符号是怎么编码的?
每个字符先转换为 UTF-8 字节,每个字节再变成 %XX。例如“你”变成 %E4%BD%A0,é 变成 %C3%A9。浏览器地址栏通常会显示解码后的形式。
为什么解码时报错?
% 后面必须跟两位十六进制数字,而且字节必须构成合法的 UTF-8。像“50% off”里孤立的 % 号或被截断的序列都无法解码;% 本身应编码为 %25。
什么是重复编码?
对已经编码的文本再编码一次,会把 % 变成 %25,于是 %20 变成 %2520。这通常是因为你的代码和某个库都对同一个值编码了。解码两次即可恢复文本,之后只编码一次。

相关工具