静态方法: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.】