静态方法:Buffer.byteLength(string[, encoding])


🌐 Static method: Buffer.byteLength(string[, encoding])

返回使用 encoding 编码时字符串的字节长度。这与 String.prototype.length 不同,后者未考虑用于将字符串转换为字节的编码方式。

🌐 Returns the byte length of a string when encoded using encoding. This is not the same as String.prototype.length, which does not account for the encoding that is used to convert the string into bytes.

对于 'base64'、'base64url' 和 'hex',此函数假设输入有效。对于包含非 base64/hex 编码数据(例如空格)的字符串,返回值可能大于从该字符串创建的 Buffer 的长度。

🌐 For 'base64', 'base64url', and 'hex', this function assumes valid input. For strings that contain non-base64/hex-encoded data (e.g. whitespace), the return value might be greater than the length of a Buffer created from the string.

import { Buffer } from 'node:buffer';

const str = '\u00bd + \u00bc = \u00be';

console.log(`${str}: ${str.length} characters, ` +
            `${Buffer.byteLength(str, 'utf8')} bytes`);
// Prints: ½ + ¼ = ¾: 9 characters, 12 bytesconst { Buffer } = require('node:buffer');

const str = '\u00bd + \u00bc = \u00be';

console.log(`${str}: ${str.length} characters, ` +
            `${Buffer.byteLength(str, 'utf8')} bytes`);
// Prints: ½ + ¼ = ¾: 9 characters, 12 bytes

当 string 是 Buffer/DataView/TypedArray/ArrayBuffer/SharedArrayBuffer 时,返回的是 .byteLength 报告的字节长度。

🌐 When string is a Buffer/DataView/TypedArray/ArrayBuffer/ SharedArrayBuffer, the byte length as reported by .byteLength is returned.