对 URL 和查询字符串进行百分号编码或解码 — 全部在浏览器中即时完成。
组件模式会转义每一个保留字符(适用于查询值和路径片段);完整 URL 模式会保留 : / ? & = 等 URL 结构字符(适用于整段 URL)。
URL 编码(百分号编码)会将 URL 中不允许出现的字符——空格、符号和非 ASCII 字符——转换为 %XX 形式的序列,使其可以安全地出现在链接、查询字符串和表单提交中。此工具完全在浏览器中完成 URL 的编码与解码,你输入的内容永远不会被发送到任何地方。
什么是 URL 编码?
URL 编码,也称为百分号编码,会将 URL 中不安全的字符——例如空格、& 以及非 ASCII 字母——替换为 % 加上表示该字符字节值的两位十六进制数。
encodeURIComponent 和 encodeURI 有什么区别?
encodeURIComponent(组件模式)会转义几乎所有特殊字符,包括 /、: 和 &,因此适合用于单个查询值或路径片段。encodeURI(完整 URL 模式)会保留这些结构字符不变,因为它假定输入的是一个完整且有效的 URL。
为什么解码时会出现错误?
当输入中包含未跟随两个有效十六进制数字的 % 符号,或者存在损坏的多字节 UTF-8 序列时,解码就会失败。请检查编码字符串是否被完整复制,且未被修改。
为什么我的 URL 里出现了 %2520 这类被重复编码的字符?
%25 是 % 符号的编码形式,所以 %2520 表示已经编码过的文本(%20)又被编码了一次。解码一次即可恢复正确的值;只对原始文本进行编码,切勿对已经过百分号编码的字符串再次编码。
这个工具支持非英文字符吗?
支持。任何 Unicode 字符,包括带重音符号的字母、中文、日文或表情符号,都会先转换为其 UTF-8 字节序列,再进行百分号编码,因此结果始终是安全的纯 ASCII 文本。
为什么空格会变成 %20 或 +?
在 URL 路径或查询值中,encodeURIComponent 会将空格转换为其正确的百分号编码形式 %20。一些较旧的系统和 HTML 表单提交在查询字符串中会用 + 表示空格,这是表单特有的另一种约定,本工具并未采用,因为 %20 才是普遍正确的编码方式。
所有处理都通过浏览器内置的 Web API 在本地完成,你的文本永远不会上传到任何服务器。