使用方法
- 打开页面默认就带示例:模式为「编码」,输入框里是「你好,世界!Hello, Base64URL!」,结果区已经显示对应的 Base64URL,你不需要先输入任何东西。
- 把要处理的文本粘进输入框,点「转换」按钮;编码模式把文本变成 Base64URL,解码模式把 Base64URL 还原成文本。
- 在文本框里按 Ctrl 加回车(Mac 上是 Cmd 加回车)也能立即转换,不必点按钮;结果区是当场算出来的,不是固定文案。
- 切换「编码 / 解码」模式时,输入框标签会在「原始文本」与「Base64URL 串」之间切换,并自动重算,方便你双向互验。
- 点「复制结果」把当前结果复制到剪贴板;点「复制对照表」复制下面示例表的制表符分隔文本,可粘进表格软件。
- 本页不联网、不写本地存储,刷新即回到默认示例,所有计算都在你自己的浏览器里完成,输入内容不会离开设备。
这个 Base64URL 编码解码工具能解决什么
标准 Base64 里有两个「麻烦字符」:加号 + 和斜杠 /。它们一旦出现在 URL 查询参数、JWT 令牌或文件名里,就会被当成路径分隔符或空格,导致解析出错。Base64URL编码解码 正是为消除这两个字符而生:把 + 换成 -、把 / 换成 _,再砍掉末尾用于字节对齐的等号 =,得到的字符串在任何 URL 与文件系统里都安全,不会和保留字符打架。
第一类用途是 JWT 与令牌处理。JSON Web Token 的 payload 与签名段用的就是 Base64URL,很多人拿到 JWT 想看里面内容,需要先解码;本工具双向都能做,复制进去立刻看到明文,再复制出来也不会破坏令牌格式。
第二类用途是 URL 与文件名安全传输。当你要把二进制或长串数据塞进链接、做短链参数、或当文件名落地时,先用 Base64URL 编码,就不会被 +/=/ 这些符号干扰,下载与解析都更稳。
第三类用途是调试与教学。开发者在对接接口时,常需要在标准 Base64 与 Base64URL 之间来回切,手动替换容易漏;本工具一键互转,还能直接处理中文,省去先转 UTF-8 再编码的麻烦。
第四类用途是 Cookie、HTTP 头与配置项里的二进制承载。很多老系统只允许 ASCII 文本,要把图片指纹、密钥片段或签名塞进去,就得先编码成可打印字符;用 Base64URL 而不是标准 Base64,能避开 = 与 / 在头部解析时引发的歧义,减少线上怪问题。本工具对这些场景同样适用,复制粘贴即可完成转换。
值得一提,本页所有编码解码都在本地完成,不联网也不上传。你可以把敏感的令牌或数据粘进来放心转,结果不会被任何服务器记录,这点和需要登录的在线编解码站不同,更适合处理私密凭证。
原理和变量
Base64URL编码解码 的核心只有两步替换加一步去等号,完整可逆。编码:先把输入按 UTF-8 字节化(用 TextEncoder 拿到字节数组),再用浏览器原生的 btoa 做标准 Base64,然后执行 safe = b64.replace(/\+/g,'-').replace(/\//g,'_').replace(/=+$/,''),即加号换减号、斜杠换下划线、并删掉末尾所有等号。解码则是反向:先把 - 换回 +、_ 换回 /,再按长度补回等号(缺几个补几个,使长度是 4 的倍数),最后用 atob 解出字节串,再用 TextDecoder 按 UTF-8 还原成文本。
为什么要去掉等号?因为标准 Base64 用 = 做尾部填充,但 = 在 URL 里也是保留字符(用于查询参数),而且多数场景并不需要它——长度信息可推算,所以 Base64URL 约定省略。解码时只要把长度补齐到 4 的倍数即可无歧义还原。下面变量表说明各环节含义,方便你理解为什么中文也能被正确编码。
| 变量 | 含义 | 说明 |
|---|---|---|
| bytes | UTF-8 字节 | TextEncoder 把文本变成字节数组 |
| b64 | 标准 Base64 | btoa 对字节串编码 |
| safe | Base64URL | +→-、/→_、去末尾 = |
| pad | 补等号 | 解码时补到 4 的倍数 |
| TextDecoder | 字节还原 | 按 UTF-8 还原中文 |
完整示例
下面这组示例全部由页面算法原样得出,可直接对照你的手算。编码输入「你好,世界!Hello, Base64URL!」,UTF-8 字节经 btoa 得标准 Base64,再替换去等号为「5L2g5aW977yM5LiW55WM77yBSGVsbG8sIEJhc2U2NFVSTCE」,与上方结果区、下方对照表完全自洽。解码该串反向操作即得原中文英文混排文本。注意标准 Base64 里的 + 与 / 在示例中已被替换,例如「测试 123」标准 Base64 含 +,Base64URL 变成「5rWL6K-VIDEyMw」。
如果你想验证手算,可以把任意字符串先按 UTF-8 写成字节,再做标准 Base64,最后把 +/−、//_、去掉末尾 =,三步做完必然和本工具一致。这个三步法也是你在不支持本页的环境里手动复现结果的可靠办法,记牢就不怕换工具对不上。
你好,世界!Hello, Base64URL!
5L2g5aW977yM5LiW55WM77yBSGVsbG8sIEJhc2U2NFVSTCE
5L2g5aW977yM5LiW55WM77yBSGVsbG8sIEJhc2U2NFVSTCE
你好,世界!Hello, Base64URL!
+ → -
/ → _
末尾 = 省略
例:你好,世界!Hello, Base64URL! 编码 = 5L2g5aW977yM5LiW55WM77yBSGVsbG8sIEJhc2U2NFVSTCE 解码 = 你好,世界!Hello, Base64URL!
常见字符串 Base64URL 编码对照表
下表列出常见字符串的编码结果(共 14 行),前 12 行直接展示,点「加载更多」展开剩余项。你可以一键导出 CSV(带 BOM,Excel 直接认中文)或复制 TSV 粘进表格软件。表里所有结果都由本页同一算法得出,等号已全部省略,加号斜杠已全部替换。
| 原始文本 | Base64URL 编码 |
|---|---|
| Hello | SGVsbG8 |
| World | V29ybGQ |
| 你好 | 5L2g5aW9 |
| liuquan.net | bGl1cXVhbi5uZXQ |
| Base64URL | QmFzZTY0VVJM |
| 测试 123 | 5rWL6K-VIDEyMw |
| abc | YWJj |
| A | |
| 中文测试Chinese | 5Lit5paH5rWL6K-VQ2hpbmVzZQ |
| https://www.example.com/path?x=1 | aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aD94PTE |
| 随机字符串random | 6ZqP5py65a2X56ym5LiycmFuZG9t |
| 工具箱 toolbox | 5bel5YW3566xIHRvb2xib3g |
| 邮件 email@test.com | 6YKu5Lu2IGVtYWlsQHRlc3QuY29t |
| JSON 数据 x y | SlNPTiDmlbDmja4geCB5 |
结果边界与错误提示
- 编码模式下输入为空时,结果会点名当前值「原始文本「」不合法:不能为空」,页面不会自作主张编出一个空串,避免你误以为转换成功。
- 解码模式下输入为空时,提示「Base64URL 串「」不合法:不能为空」,不会静默返回空文本,让你清楚知道没东西可解。
- 解码模式输入了非 Base64URL 字符(如出现 + 或 / 虽可容错,但出现空格、汉字或乱码)时,atob 会抛错,提示「Base64URL 串不合法:无法解码」,不会吐出半个乱码。
- 解码时等号缺失或多余,页面会按长度自动补到 4 的倍数,只有真正长度非法(补完后仍不对齐)才报错,不会把合法短串误判。
- 结果区与错误区都带 role="alert" 语义,内容一变就会被屏幕阅读器播报;所有转换本地完成,不联网也不写存储,刷新即还原默认示例。
- CSV 导出在文件头写入 UTF-8 BOM(\ufeff),Excel 打开中文不会乱码;TSV 复制是纯制表符分隔文本,粘进任意表格软件都会自动分列。
- 长文本编码后可能很长,结果区开启了自动换行与断词,复制时仍是完整一行,不会因为显示折行而少字符。
- 本工具只做 Base64URL 与文本的互转,不对内容做压缩或加密;若需要更小的体积请另选压缩工具,需要保密请走加密工具。
常见问题
Base64URL 和标准 Base64 有什么区别?
只差三处:+ 换成 -、/ 换成 _、末尾等号 = 全部省略。这三点让字符串在 URL、文件名、JWT 里都安全,不会被保留字符干扰;内容是同一份数据,只是写法不同。
为什么解码要补回等号?
标准 Base64 用 = 做尾部填充使长度是 4 的倍数;Base64URL 省略了它,但解码前必须补回,否则 atob 无法按 6 位一组还原字节。本工具按「缺几个补几个」自动补齐,长度非法才报错。
中文为什么也能编解码?
因为先用 TextEncoder 把文本按 UTF-8 变成字节数组,btoa 只对字节编码,所以中英文混排都能正确处理;解码再用 TextDecoder 按 UTF-8 还原,不会乱码。
等号去掉了还能还原吗?
能。Base64 的 = 只是填充,真正信息在前面;只要知道原始字节长度,就能推回需要几个等号。本工具正是靠长度自动补回,所以省略等号完全可逆。
JWT 里的点号要一起编吗?
不要。JWT 由 header.payload.signature 三段用点号隔开,每段各自是 Base64URL;你应逐段解码,而不是把整串(含点号)丢进去,否则点号不是合法字符会报错。
解码报错常见原因是什么?
多半是字符串里混入了空格、换行、汉字或标准 Base64 的 +/= 之外字符;也可能是复制时被截断。清掉多余字符、确认是纯 Base64URL 再解即可。
导出的 CSV 为什么带 BOM?
因为 Excel 打开无 BOM 的 UTF-8 文件时常把中文显示成乱码,BOM 能让 Excel 正确识别编码。TSV 复制走剪贴板不经文件,所以不需要 BOM。
我的数据会上传吗?
不会。所有编码解码在浏览器本地进行,不联网、不写存储,刷新即还原默认示例,没有任何数据离开你的设备,可以放心处理令牌与敏感内容。
相关工具
- Base64 图片编码:把图片转成可直接内联的 Base64 数据串。
- JSON 转义反转义工具:处理 JSON 里的特殊字符转义。
- 正则转义工具:给正则里的元字符加反斜杠,避免误匹配。