📜  Web TextEncoder API | TextEncoder 编码属性(1)

📅  最后修改于: 2023-12-03 14:48:25.162000             🧑  作者: Mango

Web TextEncoder API | TextEncoder 编码属性

在 Web API 中,TextEncoder 是一个用于将文本字符串编码为字节数组的对象。TextEncoder API 在浏览器中使用,可以将文本字符串编码成 UTF-8、UTF-16LE 或 UTF-16BE 等格式的字节数组。

TextEncoder 的编码属性

TextEncoder 提供了以下编码属性:

TextEncoder.prototype.encoding

encoding 属性是一个只读属性,返回编码的名称。在实例化 TextEncoder 对象时,可以通过传递一个编码格式作为参数来指定使用的编码格式。如果没有指定编码格式,则默认使用 UTF-8 格式。

const encoder = new TextEncoder('UTF-16LE');
console.log(encoder.encoding); // 'UTF-16LE'
TextEncoder.prototype.fatal

fatal 属性是一个布尔值,当 TextEncoder 对象在处理无效编码的字符时就会抛出异常。如果需要避免抛出异常,可以将该属性设置为 false(默认值为 true)。

const encoder = new TextEncoder('UTF-8', { fatal: false });
TextEncoder.prototype.ignoreBOM

ignoreBOM 属性是一个同样是布尔值,用于指示编码器是否应该忽略 BOM(Byte-Order Mark)标记。如果需要忽略 BOM,请将该属性设置为 true(默认值为 false)。

const encoder = new TextEncoder('UTF-8', { ignoreBOM: true });
TextEncoder 示例

下面是一个使用 TextEncoder 将 Unicode 字符串编码为 UTF-8 字节数组的例子:

const encoder = new TextEncoder();

const utf8bytes = encoder.encode('Hello, world!');

console.log(utf8bytes); // Uint8Array[72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33]
参考链接