Escape 编解码

文本与 Escape 编码(%XX/%uXXXX)互转,支持中文。

Escape 编解码是做什么的

Escape 是 JavaScript 早期内置的编码方式:ASCII 常用字符保持原样,其余字符按字节输出为 %XX,超出 Latin1 的字符(如中文)输出为 %uXXXX。排查旧系统接口参数、分析遗留脚本中的乱码或编码串时经常需要它。

工具按浏览器原生 escape/unescape 的规则自行实现,编码输出大写十六进制,解码同时兼容 %uXXXX 与 %XX 两种形式并容忍非法片段。支持中文等多字节字符,输入即实时转换,全程本地运行。

核心功能

  • 编码/解码双向实时互转
  • 完整支持中文与 Emoji 等多字节字符
  • 解码兼容 %uXXXX 与 %XX 混排
  • 一键复制转换结果
  • 纯本地转换,无网络请求

Escape 编解码怎么用

文本与 Escape 编码(%XX/%uXXXX)互转,支持中文。

  1. 选择「编码」或「解码」方向
  2. 在左侧输入框粘贴或输入内容
  3. 右侧即时显示转换结果
  4. 点击「复制结果」取走输出

适合这些场景

  • 调试老系统接口中的 %u 编码参数
  • 还原脚本或日志里的 Escape 乱码
  • 教学演示 JS 三种编码函数差异

常见问题

Escape 与 encodeURIComponent 有什么区别?

Escape 按 UTF-16 码元输出 %XX/%uXXXX,不遵循 URL 规范,也不能正确处理 Unicode 代理对成组转换;encodeURIComponent 按 UTF-8 字节输出 %XX。处理新项目请优先用后者,Escape 主要用于兼容旧数据。

为什么中文会变成两个 %u 开头的片段?

中文在 JavaScript 字符串中占两个字节以上的码元,Escape 对每个非 Latin1 码元输出一个 %uXXXX,因此一个汉字通常对应一段 %u 编码。

解码时遇到不完整的 % 序列怎么办?

工具会原样保留无法解析的片段而不是报错中断,方便处理被截断或混排的字符串。