在前端开发中,我们通常需要对 base64 编码进行操作。而 JavaScript 中原生支持的 window.btoa() 和 window.atob() 方法虽然能够完成基本的编解码工作,但是并不支持 Unicode 字符集以外的字符,因此对于一些特殊的场景可能会出现异常。
atob-lite 是一个基于纯 JavaScript 实现的 npm 包,它提供了完全兼容 window.atob() 的接口,同时还支持 Unicode 字符集以外的字符编解码,并且它的大小仅有 0.6KB。本文将介绍如何使用 atob-lite 库进行编解码操作。
安装
通过 npm 包管理器进行安装:
npm install atob-lite
使用
在代码中引入 atob-lite 库:
const atob = require('atob-lite');
或者使用 ES6 模块导入方式:
import atob from 'atob-lite';
解码
atob-lite 提供的解码方法与 window.atob() 方法用法相同,输入一个经过 base64 编码的字符串,返回对应的二进制数据。
示例代码:
const encoded = 'SGVsbG8gV29ybGQh'; // "Hello World!" 的 base64 编码结果 const decoded = atob(encoded); console.log(decoded); // 输出: "Hello World!"
编码
atob-lite 提供的编码方法与 window.btoa() 方法用法相同,输入一个二进制数据,返回对应的 base64 编码字符串。
示例代码:
const data = 'Hello World!'; const encoded = btoa(data); console.log(encoded); // 输出: "SGVsbG8gV29ybGQh"
解决 Unicode 字符集以外字符编解码问题
由于 window.atob() 和 window.btoa() 方法只支持 ASCII 字符集,因此当需要操作 Unicode 字符集以外的字符时,会出现异常。atob-lite 提供了通过 UTF-8 编码方式来解决这个问题的方法:
解码
示例代码:
const encoded = '5bel5Lya5rWL6K+V'; // "中文测试" 的 base64 编码结果 const decoded = atob.utf8Decode(encoded); console.log(decoded); // 输出: "中文测试"
编码
示例代码:
const data = '中文测试'; const encoded = atob.utf8Encode(data); console.log(encoded); // 输出: "5bel5Lya5rWL6K+V"
总结
本文介绍了如何使用 atob-lite 库进行 base64 编解码操作,并且介绍了如何解决 Unicode 字符集以外字符编解码问题。atob-lite 是一个轻量级、高性能、易使用的 npm 包,它可以帮助我们更方便地操作 base64 编码,并且在一些特殊场景下也能够起到很好的作用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/48351