URL 编码 / 解码
本地处理 · 数据不上传把文本百分号编码以便放进 URL,再解码还原——支持组件模式与完整 URL 模式。
URL 编码 / 解码是什么?
URL 编码 / 解码是一个快速、免费的在线工具,它把文本百分号编码,使其能安全地放进 URL,也能把百分号编码的文本解码还原成可读字符——全部在你的浏览器里即时完成。无论是拼接查询字符串、调试 API 请求,还是回读一个编码过的链接,它都是日常顺手的小工具。
URL 只允许使用有限的一组 ASCII 字符。这之外的一切——空格、带重音的字母、表情符号、中文,或者带特殊含义的保留标点——都必须用“百分号编码”来表示:每个字节写成一个“%”后跟两位十六进制数字。空格变成 %20,“&”变成 %26,而“你”的 UTF-8 字节是 %E4%BD%A0。解码就是把这个映射反过来。由于编码是按 UTF-8 字节定义的,本工具能无损地往返非拉丁文本和表情符号。
编码时最关键的选择是组件模式还是完整 URL 模式。组件模式使用 encodeURIComponent,会转义那些在 URL 中具有结构含义的保留字符—— / ? : @ & = + $ # ——因此结果可以安全地放进单个片段,比如某个查询参数的值、一个路径段或一个表单字段。完整模式使用 encodeURI,故意保留这些结构字符不变,这样你就能对一个完整的 URL(协议、主机、路径、查询)整体编码而不会把它拆散。经验法则是:对你自己拼装的片段用组件模式,对一个已经成形、只是夹带了空格等少量不安全字符的 URL 用完整模式。
解码是严格的:畸形的转义序列——一个孤立的“%”或不完整的“%E0%A4%A”——会被判为非法并提示出来,而不是悄悄弄乱,这能帮你发现被截断或被双重编码的链接。所有处理都在你的浏览器本地完成,因此你可以放心地编解码含有令牌、签名等敏感参数的 URL——不上传、不记录、不存储。
常见问题
组件模式和完整模式有什么区别?
组件模式(encodeURIComponent)会转义 / ? & = # 等保留字符,适合编码单个值,例如一个查询参数或路径段。完整模式(encodeURI)会保留这些结构字符不变,因此可以一次性对整个 URL 编码。
什么时候该用 URL 编码?
只要你把用户输入或特殊字符放进 URL,就该用——查询参数值、路径段、跳转目标或 API 参数。对空格、&、=、? 和非 ASCII 文本进行编码,可以防止它们被误读为 URL 结构。
为什么解码会失败?
当输入包含畸形的百分号序列时解码会失败——比如“%”后面没有跟两位合法的十六进制数字,像“100%”或被截断的“%E0%A4%A”。修正或补全转义序列后再试一次即可。
支持表情符号和中文吗?
支持。编码和解码都使用 UTF-8,因此表情符号、中文、阿拉伯文等非拉丁文本都会与它们的 %XX 字节序列正确互转、无损还原。
我的数据会被上传吗?
不会。所有编码和解码都完全在你的浏览器里进行。你的输入不会发送到服务器,因此含有令牌或敏感参数的 URL 始终保持私密。