文本转 Base64 编码器
将纯文本、Unicode、JSON、HTML 或代码片段编码为 Base64。输出实时更新——一键获取 Base64、Base64URL、Data URI 或 JSON。
在上方输入或粘贴文本 — Base64 结果即时显示
有 Base64 需要解码还原为文本?
将 Base64 字符串解码为可读文本,支持 UTF-8、Unicode 和 Emoji。
如何将文本编码为 Base64
输入或粘贴文本
输入任意文本——普通英文、Unicode 字符、JSON、HTML、代码片段或 Emoji。支持所有语言。
即时获取输出
输入时即实时生成 Base64 输出。在 Base64、Base64URL、Data URI 和 JSON 选项卡之间切换,获取所需格式。
复制并使用
点击「复制」将编码字符串发送到剪贴板,粘贴到您的 API、配置文件、HTTP 请求头或代码中。
文本 Base64 示例
常见输入及其对应的 Base64 输出。
| 输入 | Base64 | 备注 |
|---|---|---|
| Hello | SGVsbG8= | 简单单词 |
| Hello, Base64 Files! | SGVsbG8sIEJhc2U2NCBGaWxlcyE= | 含空格和标点 |
| 你好 | 5L2g5aW9 | 中文(UTF-8) |
| {"key":"value"} | eyJrZXkiOiJ2YWx1ZSJ9 | JSON 字符串 |
| <h1>Hello</h1> | PGgxPkhlbGxvPC9oMT4= | HTML 片段 |
| 😀 | 8J+YgA== | Emoji(4 字节 UTF-8) |
在 JavaScript 中将文本编码为 Base64
对于 ASCII 文本使用btoa(),如需完整的 Unicode 支持则使用TextEncoder方式。
JavaScript — 将文本编码为 Base64
// ASCII only
btoa('Hello')
// → "SGVsbG8="
// UTF-8 (recommended — handles all Unicode)
function encodeBase64(text) {
const bytes = new TextEncoder().encode(text)
let binary = ''
bytes.forEach(b => binary += String.fromCharCode(b))
return btoa(binary)
}
encodeBase64('Hello 你好 🌐')
// → "SGVsbG8g5L2g5aW9IPCfjpA="
// Base64URL (safe in URLs and JWT)
function toBase64Url(b64) {
return b64
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=/g, '')
}UTF-8 与 Unicode 支持
标准btoa()仅接受 ASCII 字符。对于多字节文本——中文、日文、阿拉伯文、带变音符的字符或 Emoji——必须先编码为 UTF-8 字节。
本工具使用TextEncoder在 Base64 编码前将文本转换为 UTF-8 字节。这意味着:
- 支持全部 110 万个 Unicode 码点
- Emoji、CJK 字符、从右到左文字均可正确编码
- 解码器也需使用 UTF-8 才能还原原始文本
- Base64 输出长度取决于 UTF-8 字节数,而非字符数
Base64 与 Base64URL
标准 Base64
- 使用
+和/ - 使用
=填充 - 邮件、文件存储、数据嵌入
Base64URL
- 使用
-和_ - 无填充
- JWT token、URL、文件名
需要专用的 Base64URL 编码/解码器?
Base64URL Encoder常见问题
如何在 JavaScript 中将文本编码为 Base64?
对于纯 ASCII 文本,使用 btoa('Hello') → 'SGVsbG8='。对于 UTF-8 文本(Unicode、Emoji、CJK 字符),需要先通过 TextEncoder 编码:const b = new TextEncoder().encode(text);然后将字节转换为二进制字符串后调用 btoa()。本工具会自动处理这一过程。
Base64 和 Base64URL 有什么区别?
标准 Base64 使用 + 和 / 字符,并带有 = 填充。这些字符在 URL 和文件名中会引发问题。Base64URL 用 - 替换 +,用 _ 替换 /,并去掉 = 填充——使其可以安全用于 URL、查询字符串、JWT token 和文件名。编码数据本身完全相同。
Base64 编码支持所有语言和 Emoji 吗?
支持,使用 UTF-8 编码(默认)时。UTF-8 可以表示所有 Unicode 码点,包括世界各地所有语言、Emoji 和符号。工具会先将文本编码为 UTF-8 字节,再对这些字节进行 Base64 编码。
为什么 Base64 输出以 = 或 == 结尾?
Base64 以 3 个字节为一组处理输入,生成 4 个字符。如果输入长度不能被 3 整除,会在末尾追加一个或两个 = 字符作为填充,使输出长度成为 4 的倍数。Base64URL 会去掉此填充。
可以将 JSON 或 HTML 编码为 Base64 吗?
可以。将任意 JSON 对象、HTML 片段、CSS 规则或代码片段粘贴到输入框中。工具会将整个字符串以 UTF-8 Base64 进行编码。这在将结构化数据嵌入 HTTP 请求头、配置文件和 API 字段时非常常见。
文本在哪里处理?
完全在您的浏览器中处理。您的文本不会离开设备。编码使用浏览器内置的 TextEncoder 和 btoa() API——无需服务器,无需网络请求。