Base64 编码/解码 — 中文表情不乱码(UTF-8)、URL 安全、图片转 data URL
文件 → Base64 / data URL
将文件拖放至此,或点击下方按钮选择文件
请在上方输入文本或 Base64,或将文件拖放到下方。
您的文本和文件仅在浏览器内处理,绝不上传至服务器。
相关外部工具
部分链接为联盟营销链接。
相关工具
这是一款免费的在线 Base64 编码解码工具,可在浏览器中即时将文本转为 Base64,或将 Base64 还原为文本。与直接调用 btoa() 的简单工具不同,本工具先通过 TextEncoder 将文本转为 UTF-8 字节,再进行 Base64 编码——因此中文、表情符号等任意 Unicode 字符均可正确处理,不会乱码。支持标准 Base64 与 URL 安全 base64(base64url)切换,拖入图片即可生成带预览的 data URL,还可一键复制或下载解码结果。全部在浏览器内处理,数据绝不上传。
使用方法
- 在上方输入框粘贴文本即可即时编码为 Base64,粘贴 Base64 即可即时解码为文本。
- 可选择「编码」「解码」或「自动」模式。自动模式会判断输入是否为 Base64,并显示判断结果,如有误可手动切换。
- 在「标准」与「URL 安全」(base64url,使用 - 和 _ 替换 + 和 /)之间切换,适用于 URL、查询参数和 JWT。
- 将图片或其他文件拖放至拖放区,即可生成原始 Base64 和 data URL,图片会实时预览。
- 点击「复制」按钮一键复制结果,解码结果也可下载为 .txt 文件。点击「互换」可将结果移至输入框进行反向转换。
- 无需安装或注册。您的输入和文件仅在浏览器内处理,绝不上传至服务器。
Base64 是什么?编码与解码说明
Base64 是一种将二进制或多字节数据表示为 64 个可打印 ASCII 字符(A–Z、a–z、0–9、+ 和 /,以 = 作为填充)的编码方案。它被广泛用于在只能处理纯文本的场合(如电子邮件头、JSON 字段、HTTP 认证、JWT、HTML/CSS 嵌入字符串)安全传输数据。Base64 不是加密:任何人都可以将其解码还原为原始数据。
编码(文本 → Base64)
编码时先将文本转为 UTF-8 字节,再将这些字节表示为 Base64 字符串。结果大约是原始数据的 4/3 大小。UTF-8 转换步骤是中文和表情符号能正确处理的关键——直接对多字节字符串调用 btoa() 会出错或产生乱码。
解码(Base64 → 文本)
解码时先将 Base64 字符串还原为字节,再将这些字节解释为 UTF-8 文本。如果字节无法解析为有效的 UTF-8(如图片等二进制文件),则显示错误而非乱码。
自动模式
自动模式会分析您的输入,判断它是 Base64(应解码)还是普通文本(应编码),并显示判断结果。如果判断有误,可点击「编码」或「解码」手动覆盖。例如,「Hello」有 5 个字符(不是 4 的倍数),因此被判定为编码;SGVsbG8= 是有效的 Base64,因此被判定为解码。
主要功能
中文、表情符号不乱码(UTF-8 安全)
许多工具直接对多字节字符串调用 btoa(),导致中文、韩文、日文、表情符号等非 ASCII 文字出现错误或乱码。本工具先用 TextEncoder 将字符串转为 UTF-8 字节,再用 btoa() 编码这些字节——因此「中文」和「😀」均可完整往返,不会出现乱码。
URL 安全 Base64(base64url)
标准 Base64 中的 +、/ 和 = 字符在 URL 和文件名中有特殊含义。URL 安全 Base64(base64url)将 + 替换为 -,/ 替换为 _,并去掉 = 填充,使其可以安全用于 URL 查询参数、JWT、文件名等场合。解码时,工具会自动识别标准和 URL 安全两种格式。
文件转 Base64 和 data URL(含图片预览)
将任意文件(图片、字体、文档等)拖入拖放区,即可生成原始 Base64 字符串和自包含的 data URL(data:<MIME>;base64,...)。图片会实时预览。data URL 可直接粘贴到 CSS 背景图、HTML <img> src 或 Markdown 中,无需外部文件。data URL 始终自包含,不使用会在标签页外失效的 blob: 引用。
无效 Base64 的清晰错误提示
当输入无法解码为 Base64 时,工具会说明原因:无效字符(及位置)、长度错误、解码失败或无法解释为 UTF-8 的二进制数据。错误以文字形式显示,而非仅用颜色,方便屏幕阅读器访问。
复制、下载及字符/字节数统计
一键复制结果。可将解码文本下载为 .txt 文件。输入和输出区域均显示字符数和 UTF-8 字节数——便于直观感受 Base64 比原始数据增加约 4/3 的大小。
私密安全——完全在浏览器内运行
您的文本、令牌、API 密钥和文件内容仅在浏览器内处理,不发送至任何服务器。即使是敏感或机密数据也可放心使用。
使用场景
解码 Base64 字符串以查看内容
粘贴来自电子邮件头、配置文件、JWT 载荷片段或 API 响应的 Base64 字符串,即可查看原始文本或 JSON。切换到解码模式(或使用自动模式),结果立即显示。
将中文或表情符号文本编码为 Base64
需要在 JSON 字段、HTTP 头或配置文件中嵌入中文、表情符号等非 ASCII 字符?粘贴文本并编码——UTF-8 安全编码确保往返无损,不像直接使用 btoa() 的工具那样出现乱码。
为 URL 和 JWT 生成 URL 安全 Base64(base64url)
需要在 URL 查询参数、路径段、JWT 或文件名中使用 Base64 时,切换到 URL 安全模式。输出使用 - 和 _ 代替 + 和 /,不含 = 填充,可直接嵌入 URL 或 JWT,无需百分比编码。
将图片转换为 data URL 并嵌入 HTML/CSS
小图标和图片可以作为 data URL 直接嵌入 HTML、CSS 或 Markdown,省去一次 HTTP 请求。将图片文件拖入拖放区,即可获得 data:image/png;base64,...(或对应 MIME 类型),并立即预览。复制 data URL 粘贴到代码中即可。
注意事项
- Base64 不是加密——任何人都可以解码。请勿使用 Base64 来保护密码或敏感信息。
- Base64 会将数据大小增加约 4/3(33%)。嵌入大图片作为 data URL 时请注意体积。
- 本工具对 UTF-8 文本进行编码和解码。不支持其他编码(Shift_JIS、EUC-JP、UTF-16 等)。
- 已编码为 Base64 的二进制数据(图片、PDF 等)无法解码为文本——只能解码为字节。请使用文件输出功能生成 data URL。
- 您的输入和文件绝不发送至服务器,所有处理均在本地浏览器中完成。
常见问题
- 中文或表情符号编码/解码时会乱码吗?
- 不会。本工具先用 TextEncoder 将文本转为 UTF-8 字节再编码,解码时用严格 UTF-8 模式的 TextDecoder 还原。中文、韩文、日文、表情符号等均可完整往返,不会乱码——与直接对多字节字符串调用 btoa() 的工具不同。
- 可以同时进行编码和解码吗?
- 可以。粘贴文本即编码,粘贴 Base64 字符串即解码。自动模式会判断转换方向并显示结果;如有误,可明确选择「编码」或「解码」。
- 支持 URL 安全 Base64(base64url)吗?
- 支持。切换到 URL 安全模式可获得 base64url 输出(- 和 _ 代替 + 和 /,无 = 填充)。解码时自动支持标准和 URL 安全两种格式,无需切换模式。
- 可以将图片转为 Base64 或 data URL 吗?
- 可以。将图片(或任意文件)拖入拖放区,即可获得原始 Base64 字符串和完整的 data URL(data:image/...;base64,...),图片会立即预览。data URL 自包含,可直接粘贴到 HTML、CSS 或 Markdown 中。
- 我的数据会上传至服务器吗?
- 不会。所有处理均使用标准 JavaScript API(TextEncoder、TextDecoder、btoa、atob、FileReader)在浏览器内完成。您的文本、令牌、密钥和文件内容绝不上传至任何服务器。
- Base64 是加密吗?
- 不是。Base64 是一种编码,不是加密。任何人拿到 Base64 字符串都可以解码还原,无需密钥或密码。请勿使用 Base64 来保护敏感信息。
- 可以复制或下载结果吗?
- 可以。点击「复制」按钮一键复制结果。解码为文本时,「下载」按钮可将结果保存为 .txt 文件。