📜  Node.js Buffer.toString() 方法(1)

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

Node.js Buffer.toString() 方法

Node.js 中的 Buffer 类用于处理二进制数据。Buffer.toString() 方法是将 Buffer 对象中的数据转化为字符串的方法。本文将介绍 Node.js 中的 Buffer.toString() 方法实现及使用。

语法

Buffer.toString() 方法的基本语法:

buf.toString([encoding[, start[, end]]])
  • encoding:默认为 utf8,表示使用的编码方式。
  • start:可选参数,起始位置,也即将 Buffer 转换为字符串的起始位置。
  • end:可选参数,截止位置(不包括)。
示例

以下是使用 Buffer.toString() 方法的示例:

const buf = Buffer.from('Hello World', 'utf8');
console.log(buf.toString('hex')); // 输出: 48656c6c6f20576f726c64
console.log(buf.toString('base64')); // 输出: SGVsbG8gV29ybGQ=
console.log(buf.toString('ascii')); // 输出: Hello World
参数

下面介绍 Buffer.toString() 方法的参数。

encoding

encoding 表示使用的编码方式。默认为 utf8

以下是常用编码方式:

  • ascii :仅支持 7 位 ASCII 数据。
  • utf8 : 多字节编码的 Unicode 字符。许多网页和其他文本文档以及数据库中的文本都使用此编码方式。
  • utf16le : 2 或 4 个字节,小端序编码的 Unicode 字符。支持代理对(U+10000 至 U+10FFFF)。
  • ucs2 : utf16le 的别名。
  • base64 : Base64 编码。
  • latin1 : ISO-8859-1,适用于在双字节编码不可用的情况下快速编写十六进制编码的场景。
  • binarylatin1 的别名。
  • hex : 将每个字节编码为两个十六进制字符。
start 和 end

startend 分别表示转换为字符串的起始位置和结束位置,如果不传这两个参数,则默认将整个 Buffer 对象中的数据全部转为字符串。

以下是使用 startend 参数的示例:

const buf = Buffer.from('Hello World', 'utf8');
console.log(buf.toString('utf8', 0, 5)); // 输出 "Hello"
总结

Buffer.toString() 是将二进制数据转化为字符串的方法,可以指定使用的编码方式、起始位置和截止位置。使用时要注意传入正确的参数,以便将二进制数据正确转化为字符串。