Base64 编解码工具

举报
yd_280683556 发表于 2026/08/30 15:13:53 2026/08/30
【摘要】 作品简介:Base64编解码工具,支持文本与文件双模式互转,UTF-8多字节字符安全,可选URL安全变体。Base64 编解码工具项目简介Base64 编解码工具是一款零依赖的纯前端编码工具。它把 Base64 编解码做成两个顺手的面板:文本模式下输入文本或 Base64 串一键互转;文件模式下选择任意文件即可转为 Base64 字符串,图片文件还能即时预览。基于浏览器原生的 TextEnc...
Base64 编解码工具 preview

Base64 编解码工具

项目简介

Base64 编解码工具是一款零依赖的纯前端编码工具。它把 Base64 编解码做成两个顺手的面板:文本模式下输入文本或 Base64 串一键互转;文件模式下选择任意文件即可转为 Base64 字符串,图片文件还能即时预览。基于浏览器原生的 TextEncoder / TextDecoder 处理 UTF-8 多字节字符,中文内容编码解码全程不乱码。

整个应用由单个 HTML 文件承载,零依赖、零后端,打开即用。

核心功能

  • 文本模式:文本与 Base64 双向转换,一键切换编码 / 解码方向。
  • 文件模式:任意文件转 Base64(显示文件名、大小、字节数),图片文件解码后即时预览;Base64 也能反解回字节。
  • UTF-8 安全:内部统一用 Uint8Array 表示字节,文本经 TextEncoder / TextDecoder 在 UTF-8 与字符之间转换,多字节中文、Emoji 均安全。
  • 字符集可选:UTF-8 / Latin-1 两种编码方式,适配不同场景。
  • URL 安全变体:可选将 +/ 替换为 -(Base64url),适配 JWT、URL 参数等场景。
  • 自动换行:默认每 76 字符换行(符合邮件 MIME 正文标准),可关闭。
  • 一键复制:结果一键复制到剪贴板。

技术架构

应用采用「输入与模式层 → 编解码引擎 → 结果展示层」的简洁三层结构,全部运行在浏览器端,无后端依赖。

系统架构图
  • 输入与模式层:文本 / 文件双模式切换;文本区承载输入,文件区通过点击或拖拽读取文件;字符集、URL 安全、自动换行等选项统一收集配置。
  • 编解码引擎:Base64 编码模块将字节流按「3 字节拆 4 组 6 位」映射到 64 字符表(末尾 = 补齐);解码模块按字符表反查索引并拼回字节,同时校验非法字符;文本编码模块用 TextEncoder 把字符转 UTF-8 字节,解码用 TextDecoder。
  • 结果展示层:结果框输出字符串并支持一键复制;状态徽标实时反映 就绪 / 编码完成 / 解码失败 等状态;文件模式附带文件信息与图片预览。

核心逻辑说明

编码算法:逐 3 字节处理——取 (b0<<16)|(b1<<8)|b2 拼成 24 位整数,依次右移 18 / 12 / 6 / 0 位取 6 位索引查 64 字符表;余 1 字节补 ==,余 2 字节补 =。可选 URL 安全模式把字符表末两位从 +/ 换成 -。

解码算法:先去除空白与换行,建立字符→索引的映射表;逐字符累加 6 位到缓冲区,满 8 位就取出一个字节;遇 = 停止。映射表查询失败即抛「非法字符」错误并展示给用户。

UTF-8 处理:编码时 new TextEncoder().encode(text) 得字节数组,保证中文、Emoji 等按 UTF-8 正确展开;解码时 new TextDecoder('utf-8', {fatal:true}) 严格还原,非法 UTF-8 序列直接报错而非产生乱码。

文件读取:FileReader 以 ArrayBuffer 读取文件,new Uint8Array(buf) 转为字节数组后走同一套编码管线;图片文件用 URL.createObjectURL 生成预览地址。

技术栈

技术 用途
HTML5 页面结构
CSS3 卡片式布局、文件拖拽区、响应式设计
原生 JavaScript 自研 Base64 位运算算法、TextEncoder/TextDecoder、FileReader、Clipboard API
URL.createObjectURL 图片文件即时预览

使用方式

直接用浏览器打开 index.html 即可使用;也可通过任意静态文件服务器托管后访问。

项目地址:开发者作品展览馆 https://gallery.developer.huaweicloud.com/gallery/00-2f0af6d3f3000

亮点与价值

  • 零依赖、开箱即用:单个 HTML 文件承载全部能力,部署只需一个静态服务器。
  • 编码透明:自研位运算实现,不依赖任何第三方库,逻辑清晰可审计。
  • 中英文安全:UTF-8 全链路处理,中文与 Emoji 编码解码往返零失真。
  • 实用细节:URL 安全变体、邮件标准换行、文件图片预览,覆盖真实开发场景。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。