Base64 编解码

BASE64 ENCODE / DECODE

中文也能正确编解码,不会出现乱码。支持 URL-safe 变体与去掉补位等号。

中文按 UTF-8 处理
双向实时转换

原文

—

Base64

—
转换结果会显示在这里。

关于「Base64 编解码」

这是一个纯前端的 Base64 转换工具,双向实时转换。中文和 emoji 按 UTF-8 编码,解码回来不会变成乱码,这一点比很多在线工具处理得仔细。要不要用 URL-safe 变体、要不要保留结尾的等号,都可以在左侧切换。

怎么用

  1. 把文本或 Base64 字符串粘到中间上方,下面立刻给出结果。
  2. 默认是自动识别方向。判断不准的时候,手动指定编码或解码更稳妥。
  3. 左侧可以打开 URL-safe 变体、去掉补位等号、按 76 字符换行。
  4. 点「复制结果」取走,或点「结果送回输入」做反向验证。

常见场景对照

原文标准 Base64说明
ManTWFu3 字节整好编成 4 个字符,没有等号
MaTWE=缺一个字节,补一个等号
MTQ==缺两个字节,补两个等号
你好5L2g5aW9一个汉字 3 字节,编出来 4 个字符
骨哥GT6aqo5ZOlR1Q=中文与英文混排照样处理

几个容易搞错的地方

Base64 不是加密

它只是一种表示方法,把任意字节换成 64 个可打印字符,谁都能解回来。用 Base64 处理密码或者隐私数据,等于没做任何保护。要保护内容得用真正的加密算法。

等号有没有都不影响解码

结尾的等号只是补齐长度用的,去掉之后解码结果完全一样。工具在解码时会自动补回等号,所以粘贴一段没有等号的 Base64 也能正常还原。

data URI 的前缀要手动删

图片转出来的 Base64 通常长这样:data:image/png;base64,iVBORw0KGgo...。前缀里的冒号和分号不在 Base64 字符集里,直接粘进来会报非法字符。把 base64, 后面那一段留下来再解码即可。

体积会变成原来的 1.33 倍

每 3 个字节变成 4 个字符,所以编码后的长度约是原来的 4/3。一张 100KB 的图片编成 Base64 大约 133KB,用在网页里会明显拖慢加载,小图标适合内联,大图还是走文件好。

常见问题

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

等号是补位符。Base64 把每 3 个字节编成 4 个字符,原文长度不是 3 的倍数时就要用等号补齐,所以会出现一个或两个等号。等号不影响解码结果,去掉它能让字符串更短。

中文编码后为什么会变成这么长一串?

一个汉字在 UTF-8 下占 3 个字节,Base64 又把每 3 个字节编成 4 个字符,所以一个汉字编出来是 4 个字符。体积变大是 Base64 的正常代价。

URL-safe 变体是什么?

标准 Base64 会用到加号和斜杠,这两个字符在网址里有特殊含义。URL-safe 变体把它们换成减号和下划线,编出来的字符串可以直接放进 URL 参数。

解码时提示含非法字符,是不是数据坏了?

先检查有没有把 data:image/png;base64, 这类前缀一起粘进来。Base64 字符集只包含字母、数字、加号、斜杠和等号,工具会自动忽略空格与换行,但前缀里的冒号和分号去不掉,需要手动删掉。

编码大段文本会不会卡?

不会。工具按 32KB 分块处理,避免一次性拼接超长字符串导致的问题,几万字的文本基本瞬间出结果。

这个工具会把内容发到服务器吗?

不会。转换用的是浏览器原生接口,页面没有任何上报请求,内容也不会写进本地存储,断网照样能用。

友情链接

以下站点与本站长期互链,内容各自独立运营,点击将在新窗口打开。

✔已复制