📌  相关文章
📜  使用 Buffer.from() 函数从字符串创建缓冲区.与 toString() 一样,您可以将编码参数传递给 Buffer.from(). - Javascript(1)

📅  最后修改于: 2023-12-03 15:06:45.437000             🧑  作者: Mango

从字符串创建缓冲区

在Javascript中,Buffer是一个用于处理二进制数据的类。当我们需要处理数据时,我们可以使用Buffer类来进行操作。创建一个Buffer实例可以通过多种方式,例如从字符串创建缓冲区就是其中一种方式。

使用Buffer.from()函数

Buffer.from()是一个用于创建缓冲区的函数,它可以从字符串、数组或者其他类似类型的对象中创建缓冲区。下面我们将会着重介绍从字符串中创建缓冲区的方法。

从字符串中创建缓冲区

使用Buffer.from()函数可以从一个字符串中创建一个缓冲区。例如,下面的代码演示了如何从字符串中创建一个缓冲区:

const str = 'Hello, world!';
const buf = Buffer.from(str);

console.log(buf);

解释一下上面的代码,我们首先定义了一个字符串变量str,然后调用了Buffer.from()函数来创建一个缓冲区buf。在结束之前,我们使用console.log()函数将缓冲区打印出来。

运行上面的代码,输出结果如下:

<Buffer 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21>

可以看到,字符串转为了二进制数据,并输出为16进制。

指定编码

值得注意的是,Buffer.from()函数可以同时接受两个参数,第一个参数是要被转换的字符串,第二个参数是编码格式。默认情况下编码格式是utf8。如果字符串的编码格式与默认编码不同,我们需要指定编码格式。下面是一个示例。

const str = '你好,世界!';
const buf = Buffer.from(str, 'utf16le');

console.log(buf);

这段代码中,我们指定输入的字符串的编码格式为utf16le。再次运行程序,我们会看到以下结果:

<Buffer e4 bd a0 e5 a5 bd ff 0c 4e 00 73 00 6d 00 72 00 3f 00>

可以看到,指定编码格式后的Buffer输出有所不同。

结论

通过Buffer.from()函数,我们可以从字符串中创建一个缓冲区,而且还能够指定编码格式来进行操作。当我们需要处理二进制数据时,使用Buffer类会非常方便。