LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

浅谈JavaScript中Base64转码的两个函数

admin
2025年4月17日 14:43 本文热度 219

在 JavaScript 中,atob 和 btoa 是两个用于Base64 编码和解码的内置函数,分别用于将 Base64 编码的字符串解码为原始字符串,以及将原始字符串编码为 Base64 格式。

首先说一说这两个函数的名称来源吧。

btoa: 表示 "binary to ASCII"(二进制到 ASCII)。

它的作用是将二进制数据(或字符串)编码为 Base64 格式,Base64 是一种用 ASCII 字符表示二进制数据的方式。因此,btoa 的命名反映了将任意二进制数据转换为 ASCII 字符集(A-Z、a-z、0-9、+、/)的过程。

atob: 表示 "ASCII to binary"(ASCII 到二进制)。 

它将 Base64 编码的 ASCII 字符串解码回原始的二进制数据(或字符串)。命名反映了解码过程,即从Base64 的 ASCII 表示还原为原始数据。

需要注意的是,atob 和 btoa 最早出现在 Netscape 网景浏览器中,用于处理 Base64 编码和解码。当时,Base64 常用于将二进制数据嵌入到文本格式(如 HTML、CSS 或 MIME 邮件)中。关于网景浏览器,估计只有年纪稍大的人才会用过。

很多人以为 atob 和 btoa 是某种缩写,但实际上它们不是传统意义上的缩写,而是基于功能描述的命名,源于早期浏览器对 Base64 编码的需求,这一点尤其要注意。

btoa 函数用法:

它接受一个字符串,通常是ASCII 字符或二进制数据。如果输入的字符串包含非 ASCII 字符(如中文),需要使用 encodeURIComponent先将其转换为适合的格式。返回 Base64 编码后的字符串。

const str = "Welcome to Beijing!";const encoded = btoa(str);console.log(encoded); 
const chineseStr = "北京欢迎您!";const encodedChinese = btoa(encodeURIComponent(chineseStr));console.log(encodedChinese);

运行结果:

atob 函数用法:

接受一个 Base64 编码的字符串,如果输入的 Base64 字符串无效,会抛出错误。对于非 ASCII 字符的解码,可能需要结合 decodeURIComponent。返回解码后的原始字符串。

// 解码 Base64 字符串const encoded = "V2VsY29tZSB0byBCZWlqaW5nIQ==";const decoded = atob(encoded);console.log(decoded);
// 解码包含中文的 Base64 字符串const encodedChinese = "JUU1JThDJTk3JUU0JUJBJUFDJUU2JUFDJUEyJUU4JUJGJThFJUU2JTgyJUE4JUVGJUJDJTgx";const decodedChinese = decodeURIComponent(atob(encodedChinese));console.log(decodedChinese);
运行结果:

btoa 和 atob 的局限性:

主要处理 ASCII 字符,对于 Unicode 字符(如中文、表情符号等),需要配合encodeURIComponent 和 decodeURIComponent 使用。

不支持直接处理二进制数据(如文件流)。如果需要处理二进制数据,可以使用 ArrayBuffer 或 TypedArray 结合其他方法。


阅读原文:https://mp.weixin.qq.com/s/j1W_brSR0Tr33zG0N4m6_w


该文章在 2025/4/17 14:43:37 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved