Skip to content

信息编解码 ​

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

「信息编解码」工具页填入示例输入后的界面:编解码设置 / 输入内容 / URL 参数解析 / 编码 / URL 编码 / URL 编码(整链接) / Base64 编码 / Base64 URL 安全 / 十六进制编码;页头标签「浏览器本地执行 · 免费」

「信息编解码」填入示例输入后,右侧即时给出结果(图中数据为示例)。在浏览器本地完成、数据不离开浏览器,免费。

认出是哪种编码 ​

长相编码例
大量 % + 两位十六进制URL 编码%E4%B8%AD
字母数字 + +/=,长度是 4 的倍数Base645Lit5paH
\u + 四位十六进制Unicode 转义\u4e2d\u6587
&# 或 & 这类HTML 实体<div>
三段用 . 分隔JWTeyJhbG...

先认出类型再解,用错方式会得到一堆乱码然后以为数据坏了。

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、含业务数据的字符串可以放心。

相关工具 ​

最后更新:2026-09-05