Escape 编码/解码

URL 百分号编码与 escape 转义互转

Escape 编码的作用与它已过时的原因

Escape 转义做了什么

escape() 是早期 JavaScript 的函数,把字符转成 %XX 或 %uXXXX 形式。关键区别在于:它按 UTF-16 码元处理,而不是按 UTF-8 字节。所以一个汉字会被写成 %u4E2D 这样的单个 %u 序列,而不是 3 个 %E4%B8%AD。

为什么它已经不该用了

ECMAScript 规范已把 escape 标记为过时(Annex B,仅为兼容旧网页保留),实现可以移除它。

那还有什么场景需要它

主要是处理历史数据:老系统、老日志、老 CMS 导出的 URL 里会残留 %uXXXX 形式的编码;一些 2000 年代中期的前端框架把 escape() 的输出写进了数据库。解析这类数据时需要能还原它,这也是本工具保留这个功能的原因。

需要编码新数据时,请用 URL 编码工具走 encodeURIComponent 规则。工具会并行显示两套结果,方便你对照确认手上的字符串属于哪一种。

常见问题

escape 不是已经废弃了吗?

是的,新代码应使用 encodeURIComponent。这里保留是为了处理历史系统的遗留数据。