跳到正文

URL 编码与解码

对 URL、查询参数值和表单数据进行百分号编码或解码,支持 UTF-8,并逐项解码每个查询参数,全程在浏览器中运行。

你要编码什么?

encodeURIComponent:转义除字母、数字和 - _ . ! ~ * ' ( ) 之外的所有字符。适用于单个参数值。

百分号编码
输入时,结果会显示在这里。
在浏览器中运行 · 无需上传工作原理

URL 编码/解码 使用方法

  1. 1

    选择编码或解码

    “编码”会把空格和特殊字符转换成 %XX;“解码”会把 %XX 还原为可读文本。

  2. 2

    选择编码对象

    单个参数用查询值,完整地址用完整 URL,需要把空格变成 + 时用表单数据。

  3. 3

    粘贴文本或链接

    结果会随输入实时更新,输入完整 URL 时还会显示各部分和参数的拆解。

  4. 4

    复制结果

    可以复制结果、保存为文件,或点击“将输出用作输入”来检查往返转换是否一致。

限制与 Pro

免费使用,无需注册,粘贴文本的长度不限;超过 600,000 个字符的输出只显示一部分,复制或保存时仍是完整内容。

Pro 可去除广告;转换器在所有套餐中功能完全相同。 了解 Pro

关于 URL 编码/解码

URL 只能包含有限的一组 ASCII 字符,所以空格、带重音的字母、emoji,以及被当作数据使用的保留符号,都必须写成 % 加两位十六进制数,每个 UTF-8 字节对应一组。本页支持双向转换,并清楚显示哪些内容发生了变化。

三种模式对应编码实际发生的三种场景。查询值模式的行为与 JavaScript 的 encodeURIComponent 相同,适合单个参数、路径片段,或嵌入在另一个 URL 中的跳转目标。完整 URL 模式的行为与 encodeURI 相同:协议、斜杠、问号、& 和等号保持不变,只转义会破坏地址的字符。表单数据模式遵循 application/x-www-form-urlencoded,空格会变成加号,与 HTML 表单和 URLSearchParams 一致。

粘贴完整链接后,拆解面板会列出协议、主机、端口、路径和片段,并用表格显示每个查询参数及其解码后的值,方便查看跟踪链接、OAuth 回调和带签名的 URL。遇到格式错误的输入时,解码会停止并指出位置:比如单独的 % 后面没有两位十六进制数,或字节序列不是有效的 UTF-8,这通常说明文本是由旧系统按 Latin-1 编码的。

百分号编码不是加密,也不会缩短链接;要缩短请使用短链接工具。Base64 和 HTML 实体转换在另外两个标签页中。

隐私

URL 和文本都在本页内完成编码与解码,包含令牌、邮箱地址或会话 ID 的链接不会被发送到任何地方。所选模式会保存在本地存储中供下次使用,你粘贴的内容不会保存。

URL 编码/解码:常见问题

应该用 encodeURI 还是 encodeURIComponent?
凡是要插入 URL 的内容,如搜索词、参数值或嵌套的跳转 URL,都用 encodeURIComponent,也就是这里的查询值模式。它会转义 & = ? /,避免被误认为 URL 结构。encodeURI 即完整 URL 模式,只适用于结构已正确、仅需处理空格或非 ASCII 字符的完整地址。
为什么空格有时是 %20,有时是 +?
URL 标准的百分号编码把空格写成 %20。HTML 表单使用较早的 application/x-www-form-urlencoded 格式,空格变成 +,真正的加号则变成 %2B。两种写法在查询字符串中都很常见。解码表单提交的值时请选择表单数据模式,否则 + 会保持为加号。
解码时提示“不是有效的 UTF-8”是什么意思?
现代 URL 把每个字符编码为 UTF-8 字节,例如 é 是 %C3%A9。一些旧系统使用 Latin-1,é 只是单个字节 %E9,这种序列不是有效的 UTF-8。错误提示会显示出错位置。你可以把源文本重新按 UTF-8 编码,如果只有少数字符受影响,也可以手动替换。
能查看很长的跟踪链接里的参数吗?
可以。粘贴带 https:// 前缀的完整链接,结果下方就会出现拆解面板。它会列出主机、路径和片段,并显示每个查询参数及其解码后的值,包括重复的键,这样 UTM 标签、OAuth 的 state 值和嵌套的跳转 URL 无需逐个解码就能读懂。
把 URL 编码两次会有问题吗?
会。重复编码是常见错误:第一次编码产生的 % 会变成 %25,于是 %20 变成 %2520,服务器收到的就是错误的值。如果解码一次后仍然留有 %XX 序列,说明文本被编码了两次。点击“将输出用作输入”再解码一次,即可还原原文。

此工具的其他用途