base64-pro
v1.0.0
Published
`base64-pro` 是一款 Base64 编解码工具。
Downloads
10
Maintainers
Readme
base64-pro
base64-pro
是一款 Base64 编解码工具。
特点
- 纯 JS
- 零依赖
- 支持现代浏览器 & Node.js
- 支持二进制数据和 “Base64 字符串” 互转
- 支持 “Unicode 字符串” 和 “Base64 字符串” 互转 (atob 和 btoa 只支持 code point 是 0-255 的字符)
- 支持将二进制数据或 “Unicode 字符串” 转成 DataURL
- 支持自定义 Base64 字符集
- 支持 TypeScript
- 支持 ESM、CommonJS、浏览器直接加载
安装
npm i base64-pro
快速开始
import Base64 from "base64-pro"; // ESM
或
const Base64 = require("base64-pro"); // CommonJS
或
在浏览器中直接加载 JS 文件 来使用,会获得全局变量 window.Base64
。
1. 二进制数据和 “Base64 字符串” 互转。(二进制数据可以是 ArrayBuffer 实例 或 某种 TypedArray 实例 或 DataView 实例 或 Node.js 中的 Buffer 实例)
const b64 = new Base64();
// 编码
b64.bufferToBase64(new Uint8Array([1, 2, 3, 4])); // AQIDBA==
// 解码
b64.base64ToBuffer("AQIDBA=="); // ArrayBuffer { [Uint8Contents]: <01 02 03 04>, byteLength: 4 }
2. “Unicode 字符串” 和 “Base64 字符串” 互转。
// 编码
b64.strToBase64("👻base64-pro🤗"); // 8J+Ru2Jhc2U2NC1wcm/wn6SX
// 编码
b64.base64ToStr("8J+Ru2Jhc2U2NC1wcm/wn6SX"); // 👻base64-pro🤗
3. 将二进制数据或 “Unicode 字符串” 转成 DataURL。
b64.bufferToDataURL(require("fs").readFileSync("icon.png"), "image/png"); // data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA...
b64.strToDataURL("👻base64-pro🤗"); // data:text/plain;charset=utf-8;base64,8J%2BRu2Jhc2U2NC1wcm%2Fwn6SX
Base64
类的详细介绍
一、构造函数
new Base64(initOpts)
initOpts
- 必填: 否
- 类型: object
- 属性:
alphabet
- 必填: 否
- 类型: string
- 默认值:
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
- 说明: Base64 字符集
encodeChunkSize
- 必填: 否
- 类型: number
- 默认值:
16383
- 说明: 性能优化相关的参数,不建议修改。长字符串拼接是比较慢的,所以在生成 Base64 字符串时,会分块生成,最后合并成一个完整字符串,这个值代表每多少字节的原始数据生成一个临时的字符串片段。
二、实例的方法
1. bufferToBase64(value[, padding])
- 说明: 将二进制数据转成 Base64 字符串。
- 参数:
value
- 必填: 是
- 类型: buffer
- 说明: buffer 代指 ArrayBuffer 实例 或 某种 TypedArray 实例 或 DataView 实例 或 Node.js 中的 Buffer 实例
padding
- 必填: 否
- 类型: boolean
- 默认值:
true
- 说明: 当 Base64 字符串的长度不是 4 的整数倍时,是否自动在尾部用
=
补齐。
- 返回值: Base64 字符串。
2. base64ToBuffer(base64Str)
- 说明: 将 Base64 字符串转成二进制数据。
- 参数:
base64Str
- 必填: 是
- 类型: string
- 说明: 合法的 Base64 字符串
- 返回值: ArrayBuffer 实例。你可以自由的创建任何一种视图来读取这部分二进制数据。
3. strToBase64(str[, encoding[, padding]])
- 说明: 将 Unicode 字符串转成 Base64 字符串。
- 参数:
str
- 必填: 是
- 类型: string
- 说明: Unicode 字符串
encoding
- 必填: 否
- 类型: string
- 默认值:
utf-8
- 可选值:
utf-8
,utf8
,utf-16
,utf-16le
,utf-16be
- 说明: Unicode 有多种字符编码方式,即使是相同的字符,不同的编码方式底层的二进制也会不一样。目前支持按照 utf-8 和 utf-16 的编码方式将 Unicode 字符串转成 Base64 字符串。其中 utf8 是 utf-8 的别名。utf-16 是 utf-16le 的别名。utf-16le 为小端字节序编码、utf-16be 为大端字节序编码。
padding
- 必填: 否
- 类型: boolean
- 默认值:
true
- 说明: 同上。
- 返回值: Base64 字符串。
4. base64ToStr(base64Str[, encoding])
- 说明: 将 Base64 字符串转成 Unicode 字符串。
- 参数:
base64Str
- 必填: 是
- 类型: string
- 说明: 合法的 Base64 字符串
encoding
- 必填: 否
- 类型: string
- 默认值:
utf-8
- 可选值:
utf-8
,utf8
,utf-16
,utf-16le
,utf-16be
- 说明: 同上。
- 返回值: Unicode 字符串。
5. strToDataURL(str[, encoding])
- 说明: 将 Unicode 字符串转成一段 DataURL 字符串。转化后的结果可以直接在浏览器地址栏中打开。
- 参数:
str
- 必填: 是
- 类型: string
- 说明: Unicode 字符串
encoding
- 必填: 否
- 类型: string
- 默认值:
utf-8
- 可选值:
utf-8
,utf8
,utf-16
,utf-16le
,utf-16be
- 说明: 同上。
- 返回值: DataURL 字符串。
6. bufferToDataURL(value[, mimeType])
- 说明: 将二进制数据转成一段 DataURL 字符串。使用 DataURL 可减少网络请求,建议将一些体积较小的文件转成 DataURL。
- 参数:
value
- 必填: 是
- 类型: buffer
- 说明: 同上。
mimeType
- 必填: 否
- 类型: string
- 默认值:
application/octet-stream
- 说明: 有效的 MIME 类型,比如
image/png
、application/pdf
等。
- 返回值: DataURL 字符串。