Node.js Buffer(缓冲区)
定义
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。
但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
Buffer 与字符编码
Buffer 实例一般用于表示编码字符的序列,比如 UTF-8 、 UCS2 、 Base64 、或十六进制编码的数据。 通过使用显式的字符编码,就可以在 Buffer 实例与普通的 JavaScript 字符串之间进行相互转换。
const buf = Buffer.from('runoob', 'ascii');
console.log(buf.toString('hex'));
// 输出 72756e6f6f62
console.log(buf.toString('base64'));
// 输出 cnVub29i
Node.js 目前支持的字符编码包括:
ascii
- 仅支持 7 位 ASCII 数据。如果设置去掉高位的话,这种编码是非常快的。
utf8
- 多字节编码的 Unicode 字符。许多网页和其他文档格式都使用 UTF-8 。
utf16le
- 2 或 4 个字节,小字节序编码的 Unicode 字符。支持代理对(U+10000 至 U&