编解码

编码

在线 URL、Base64、Unicode 编解码与 MD5

日常开发里有一类高频但零碎的活儿:把中文参数拼进 URL、把一段配置转成 Base64 塞进环境变量、把后端返回的 \u4e2d\u6587 还原成可读文字、对着接口文档算一个 MD5 签名。这些操作单独都不难,但散落在不同工具和命令里,来回切换很费神。

这个页面把它们收在同一个输入框上。左边粘贴原文,中间选一种操作,右边直接出结果;「先 Base64 解码,再 Unicode 还原」这类两步转换,点一下「结果作输入」就能把右边的结果回填到左边接着处理。输入输出的行数与字符数一直显示在面板顶部,核对长度时不用另找工具。

和多数在线编解码站点的区别在于,这里没有后端。encodeURIComponentbtoaTextDecoder 都是浏览器原生能力,MD5 由页面内的 crypto-js 计算,你粘进来的内容不会离开这台机器。对于需要处理生产环境签名串、access token 或包含用户手机号的参数的场景,这一点决定了工具能不能用。

有两个容易踩的坑值得提前说明。第一,「URL 编码」按 encodeURIComponent 处理,会把斜杠和冒号也转义,它是给参数值用的,不要拿它编码整条网址。第二,MD5 是单向摘要而不是加密,算完无法还原,也早已不适合用于数字签名或密码存储——需要按算法强度选型时,请到哈希摘要页使用 SHA256 或 SHA512。

功能一览

  • URL 编码/解码:使用 encodeURIComponent 规则,斜杠、问号、等号等分隔符也会被转义,适合处理查询参数的值
  • Base64 编码/解码:先按 UTF-8 转成字节再编码,中文与 emoji 不会乱码,输出为带填充的标准 Base64
  • Unicode 编码:逐字符转成 \uXXXX 形式,十六进制为大写并补足四位,结果是纯 ASCII 文本
  • Unicode 解码:还原 \u4e2d\u6587 这类转义,同时兼容 \n、\t、\\ 等常见转义序列
  • 全文 MD5:对整段输入(含换行)计算一个 32 位小写十六进制摘要
  • 每行 MD5:按换行拆分输入,逐行计算摘要并保持原有行序,便于批量比对
  • 左右双栏对照,实时显示输入与输出的行数、字符数,结果可一键复制或回填成输入继续加工
  • 输入输出自动保存在浏览器本地,刷新页面不丢失,点「清空」即彻底移除

常见问题

encodeURI 和 encodeURIComponent 有什么区别?这里用的是哪个?
两者的差别在于是否转义 URL 保留字。encodeURI 会保留冒号、斜杠、问号、井号、@、&、= 等结构字符,适合编码一整条 URL;encodeURIComponent 会把它们一并转义,适合编码单个参数值。本工具的「URL 编码」用的是 encodeURIComponent,所以整条网址编码后开头的 :// 会变成 %3A%2F%2F —— 这是预期行为,不是出错。
Base64 算加密吗?能用来保护数据吗?
不算,Base64 是编码而不是加密。它只是把二进制数据用 64 个可打印字符重新表示,没有密钥,任何人拿到都能直接解回原文,本页面就能做到。它真正的用途是让二进制内容安全地穿过只接受文本的通道,比如 JSON 字段、URL 参数、邮件头。需要保密请用 AES 这类真正的加密算法并妥善管理密钥。
Base64 解码报错或者解出乱码,怎么排查?
常见原因有三个。一是字符串被截断或含有换行、空格,长度不是 4 的倍数;二是拿到的是 URL-safe 变体,用 - 和 _ 代替了 + 和 /,需要先换回来并把末尾补齐 = 号;三是原始数据本身不是 UTF-8 文本(例如图片、加密后的字节),解出来必然是乱码,这种情况应该按二进制处理而不是当字符串看。
「全文 MD5」和「每行 MD5」有什么区别?
「全文 MD5」把整段输入(包括中间的换行符)当作一个整体算出单个摘要;「每行 MD5」按 \n 把输入拆开,对每一行单独计算,输出行数与输入行数一致,适合批量校验一列数据。注意行尾多余的空格或 Windows 换行残留的 \r 都会参与计算并改变结果,比对不上时先检查这些不可见字符。
Unicode 编码为什么把英文和数字也转义了?
这是有意的。本工具逐字符输出 \uXXXX,包括 ASCII 字符,好处是结果为纯 ASCII 文本,可以安全地写进对编码敏感的老系统或配置文件。需要注意码点超过 U+FFFF 的字符(多数 emoji、部分生僻汉字)会被拆成两个代理对转义,看起来是两组 \u,解码时能够正确还原成原字符。
输入的内容会上传到服务器吗?
不会。编解码和 MD5 计算全部在你的浏览器里执行,页面加载完成后即使断网也能继续使用,不向任何接口发送你输入的文本。唯一的本地存储是为了刷新后恢复现场,内容以 localStorage 形式留在这台机器上。在公用电脑上处理过令牌或密钥后,用完点一下「清空」即可删除。

编码分组的其它工具

  • 哈希摘要MD5 / SHA1 / SHA256 / SHA512 摘要计算,支持逐行批量
  • JWT 解析解析 JWT Header / Payload 与时间声明