buf.toString([encoding[, start[, end]]])
encoding
<string> 要使用的字符编码。 默认值:'utf8'
。start
<integer> 开始解码的字节偏移量。 默认值:0
。end
<integer> 停止解码的字节偏移量(不包括在内)。 默认值:buf.length
.- 返回: <string>
根据 encoding
中指定的字符编码将 buf
解码为字符串。
start
和 end
可以传入仅解码 buf
的子集。
如果 encoding
是 'utf8'
并且输入中的字节序列不是有效的 UTF-8,则每个无效字节都将替换为替换字符 U+FFFD
。
字符串实例(以 UTF-16 代码单元表示)的最大长度可用作 buffer.constants.MAX_STRING_LENGTH
。
const buf1 = Buffer.allocUnsafe(26);
for (let i = 0; i < 26; i++) {
// 97 是 'a' 的十进制 ASCII 值。
buf1[i] = i + 97;
}
console.log(buf1.toString('utf8'));
// 打印: abcdefghijklmnopqrstuvwxyz
console.log(buf1.toString('utf8', 0, 5));
// 打印: abcde
const buf2 = Buffer.from('tést');
console.log(buf2.toString('hex'));
// 打印: 74c3a97374
console.log(buf2.toString('utf8', 0, 3));
// 打印: té
console.log(buf2.toString(undefined, 0, 3));
// 打印: té
encoding
<string> The character encoding to use. Default:'utf8'
.start
<integer> The byte offset to start decoding at. Default:0
.end
<integer> The byte offset to stop decoding at (not inclusive). Default:buf.length
.- Returns: <string>
Decodes buf
to a string according to the specified character encoding in
encoding
. start
and end
may be passed to decode only a subset of buf
.
If encoding
is 'utf8'
and a byte sequence in the input is not valid UTF-8,
then each invalid byte is replaced with the replacement character U+FFFD
.
The maximum length of a string instance (in UTF-16 code units) is available
as buffer.constants.MAX_STRING_LENGTH
.
const buf1 = Buffer.allocUnsafe(26);
for (let i = 0; i < 26; i++) {
// 97 is the decimal ASCII value for 'a'.
buf1[i] = i + 97;
}
console.log(buf1.toString('utf8'));
// Prints: abcdefghijklmnopqrstuvwxyz
console.log(buf1.toString('utf8', 0, 5));
// Prints: abcde
const buf2 = Buffer.from('tést');
console.log(buf2.toString('hex'));
// Prints: 74c3a97374
console.log(buf2.toString('utf8', 0, 3));
// Prints: té
console.log(buf2.toString(undefined, 0, 3));
// Prints: té