URL 编码与解码

编码参数或整个 URL——为每种场景选对函数。

🔒 完全在您的浏览器中运行——不上传任何数据。

查询字符串解析器

编辑下方任意名称或值——完整 URL 会自动重建并重新编码。

关于此工具

空格、重音字符、&= 和多数符号不能直接出现在 URL 中——必须转换为 %XX 转义序列(百分号编码)。关键在于选哪个函数:encodeURIComponent 会转义包括 &=? 在内的所有字符,适用于参数值;encodeURI 保留 URL 结构字符,仅用于编码完整 URL。

混用二者是经典 bug:对参数使用 encodeURI 会悄悄破坏含 &= 的值。完整对比见 encodeURI vs encodeURIComponent。转换器下方的查询字符串解析器会把粘贴 URL 的每个参数解码到可编辑表格中——修改名称或值即可自动重建完整 URL。一切都在浏览器中运行——更多免费工具见 dec0de.dev

URL(百分号)编码用 % 加上其十六进制字节值替换会破坏 URL 的字符——空格变成 %20,& 变成 %26。这是把搜索词、重定向目标、令牌和非 ASCII 文本安全放入链接或查询字符串的方式。保留字符(: / ? # [ ] @ ! $ & ' ( ) * + , ; =)、空格以及未保留集合(字母、数字和 - _ . ~)之外的任何字符都会被编码;其余保持可读。

常见问题

encodeURIComponent 还是 encodeURI,我该用哪个?

对单个查询值或路径段用 encodeURIComponent——它会编码 &、=、?、/ 等。仅对不想破坏的整个 URL 用 encodeURI。用 encodeURI 编码一个值是经典 bug。

为什么空格有时是 %20 有时是 +?

在 URL 路径中空格是 %20。在使用 form-urlencoded 格式的查询字符串中,空格常写作 +。两者都会解码回空格,“+ 表示空格”开关可在两种模式间切换。

可以一次编码一整列值吗?

可以。打开“批量:每行一个值”,每一行都会独立编码或解码,并保留原有顺序和空行。结果可复制或下载为文本文件。

哪些字符真正需要编码?

保留字符(: / ? # [ ] @ ! $ & ' ( ) * + , ; =)、空格、非 ASCII 文本和控制字符。未保留集合——字母、数字和 - _ . ~——始终保持原样。

为什么解码会报“转义无效”?

% 后面必须正好跟两个十六进制数字,且解出的字节必须是合法 UTF-8。未被编码的字面 % (应写作 %25)、像 %2 这样被截断的序列,或来自其他字符集的字节都会导致解码失败。本工具会指出出错的序列及其位置,并可直接跳转到该处。

我的 URL 数据会保密吗?

是的。编码、解码和查询字符串解析都在你的浏览器中运行。你的输入只保存在本浏览器的 local storage 中以便刷新后恢复——点击“清除”即可删除。任何内容都不会上传。