静态方法:Buffer.byteLength(string[, encoding])
\Static method: Buffer.byteLength(string[, encoding])
版本历史
| 版本 | 变更 |
|---|---|
| v7.0.0 | 传入无效输入现在将抛出错误。 |
| v5.10.0 | 参数 |
| v0.1.90 | 新增于: v0.1.90 |
-
string<string> | <Buffer> | <TypedArray> | <DataView> | <ArrayBuffer> | <SharedArrayBuffer> 用于计算长度的值。\
string<string> | <Buffer> | <TypedArray> | <DataView> | <ArrayBuffer> | <SharedArrayBuffer> A value to calculate the length of. -
encoding<string> 如果string是字符串,则这就是它的编码。默认值:'utf8'。\
encoding<string> Ifstringis a string, this is its encoding. Default:'utf8'. -
返回:<integer>
string中包含的字节数。\Returns: <integer> The number of bytes contained within
string.
使用 encoding 编码时返回字符串的字节长度。这与 String.prototype.length 不同,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: 1⁄2 + 1⁄4 = 3⁄4: 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: 1⁄2 + 1⁄4 = 3⁄4: 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.