编码工具

Base64 中文乱码怎么解决?

说明 Base64 不是加密,中文乱码通常来自字符集不一致,并给出 UTF-8 编码解码排查方法。

打开 Base64 编解码工具

Base64 本身不保存字符集信息

Base64 只是把二进制数据转换成由 A-Z、a-z、0-9、+、/ 等字符组成的文本表示。它不记录原始内容是 UTF-8、GBK 还是其他编码。

所以“解码乱码”通常不是 Base64 算法错了,而是编码和解码时使用的字符集不一致。中文内容建议统一使用 UTF-8。

浏览器 btoa/atob 的中文问题

浏览器原生 btoa 和 atob 更适合处理 Latin1 字符。直接对中文调用 btoa,可能报错或得到不可预期结果。正确做法是先把中文转成 UTF-8 字节,再做 Base64 编码。

如果你只是临时转换,可以直接使用在线工具;如果写到项目代码里,建议使用 TextEncoder、TextDecoder 或成熟的编码库。

  • 编码前确认原始字符串是 UTF-8。
  • 解码后如果乱码,尝试按 UTF-8 重新解析字节。
  • 接口传参时确认服务端没有二次 URL 编码或截断 + 号。

接口传参里的细节

Base64 字符串里可能包含 +、/、=。放进 URL 查询参数时,这些字符可能被浏览器或服务端当成特殊字符处理,导致解码失败。

如果要放在 URL 里,建议再做 URL 编码;如果放在 JSON 请求体里,通常可以直接传字符串。

常见问题

Base64 是加密吗?

不是。Base64 是编码,任何人拿到字符串都可以解码,不适合保护敏感信息。

Base64 后面的 = 可以删除吗?

不建议随意删除。= 是补位字符,部分解码器可以容错,但保留更稳妥。

图片 Base64 和文字 Base64 一样吗?

底层都是 Base64 编码,但图片通常会带 data:image/png;base64, 这样的 Data URI 前缀。

🛠️ 更多实用工具: JSON格式化 YAML↔JSON XML↔JSON Base64编解码 URL编码 JWT解析 MD5/SHA加密 UUID生成 二维码生成 正则测试 文本Diff 时间戳转换 SQL格式化 Mock数据 图片压缩 图片Base64 颜色转换
📚 热门教程: JSON 格式化报错 时间戳秒/毫秒区别 Base64 中文乱码 URL 空格编码区别 图片压缩到 200KB 手机号邮箱正则 JWT 过期时间 MD5/SHA256 区别 全部教程