Base64URL · URL-safe Base64 转换

标准 Base64 里的 + / 和 = 一进了 URL 就会被转义,进了文件名就是非法字符,于是有了 URL-safe 版本:用 - _ 代替,去掉填充。本工具解码时自动认这两种写法,不用你手动替换;要输出 URL-safe,在文件模式的选项里勾一下。

b64file — converter · local

粘贴即自动处理,不用点按钮(Ctrl+Enter 立刻转换 / Esc 清空)

粘贴、拖拽、Ctrl+V 截图都行

[01]

和标准 Base64 只差三个字符

  • + 换成 - — 加号在 URL 里会被当成空格
  • / 换成 _ — 斜杠在 URL 和文件名里是分隔符
  • = 直接去掉 — 填充符,解码时能算出来,URL-safe 版本不写
[02]

什么时候必须用它

  • URL 参数和短链 — 把一段数据塞进查询串,标准 Base64 会被转义得面目全非
  • JWT — header 和 payload 都是 base64url,三段用点连起来(要看某个 token 里写了什么,用 JWT 解码)
  • Cookie 和 HTTP 头 — 只允许安全字符,加号斜杠都是雷
  • 文件名 — 斜杠不能进文件名,这是硬规矩
[03]

解码不用手动改

把 URL-safe 的字符串直接贴进「Base64 → 文本」就行:- 和 _ 会自动还原成 + 和 /,缺掉的 = 自动补齐。反过来要生成 URL-safe,切到「文件转 Base64」勾上 URL-safe 选项即可。

常见问题

JWT 里那段能直接解吗?

能,不过有专门的 JWT 解码:整条 token 粘进去,header 和 payload 一起解出来。提醒一句:JWT 的 payload 只是编码不是加密,谁拿到都能看,别往里放敏感信息。

编码时怎么输出 URL-safe?

「文件转 Base64」面板里有 URL-safe 勾选项,勾上后输出的就是 - _ 且不带填充的版本。

为什么有的 Base64 结尾没有等号?

等号是填充符,作用是让长度凑成 4 的倍数。URL-safe 版本默认去掉它,解码时补回来即可——本工具会自动补,不用你管。

这两种写法能混着用吗?

最好别。同一份数据要么全标准要么全 URL-safe。混用虽然能解,但复制进 URL 照样会出问题。

相关工具与指南