主题
信息编解码
日志里一串 %E4%B8%AD%E6%96%87 看不懂,或者要把一段 JWT 拆开看看里面写了什么。这类「明明是文本但读不出来」的情况,通常是被某种编码包了一层。

「信息编解码」填入示例输入后,右侧即时给出结果(图中数据为示例)。在浏览器本地完成、数据不离开浏览器,免费。
认出是哪种编码
| 长相 | 编码 | 例 |
|---|---|---|
大量 % + 两位十六进制 | URL 编码 | %E4%B8%AD |
字母数字 + +/=,长度是 4 的倍数 | Base64 | 5Lit5paH |
\u + 四位十六进制 | Unicode 转义 | \u4e2d\u6587 |
&# 或 & 这类 | HTML 实体 | <div> |
三段用 . 分隔 | JWT | eyJhbG... |
先认出类型再解,用错方式会得到一堆乱码然后以为数据坏了。
URL 编码:为什么中文会变成那样
URL 只允许 ASCII 字符。中文、空格、&、= 这类字符必须先转成 %XX 形式才能放进 URL。
一个高频问题:参数值里的 & 没编码。比如把 A&B 直接放进 ?name=A&B,服务端会把它当成两个参数——name=A 和一个叫 B 的空参数。所有拼 URL 的地方都要对参数值单独编码。
Base64 不是加密
需要说清的边界:Base64 是编码不是加密。任何人拿到都能一眼解开,它的作用是让二进制数据能在只支持文本的通道里传输。
看到「密码用 Base64 存起来了」这种说法,那和明文存储没有区别。
JWT:能看不能改
JWT 的前两段(头部和载荷)就是 Base64 编码的 JSON,任何人都能解开看。所以:
- 不要把敏感信息放进 JWT 载荷——用户 ID 可以,密码、身份证不行
- 第三段是签名,改了前两段签名就对不上,所以内容不可篡改,但完全可读
这个工具能拆开看头部和载荷,用于排查「这个 token 里到底带了什么、什么时候过期」。
多层编码要逐层解
实际排查中常遇到套了两三层的情况——比如 URL 编码里包着 Base64,Base64 解开又是 JSON。
一层一层解,每层解完先看结果像什么,再决定下一步用哪种方式。急着一次解到底容易用错方式。
浏览器本地处理
内容不上传。处理含 token、含业务数据的字符串可以放心。
相关工具
- 代码格式化/压缩 —— 解出 JSON 后格式化查看
- 图片转 Base64 —— 图片的 Base64 编解码