更新时间:2024-08-14 19:50:30
TextEncoder 接口接收 Unicode 码点流作为输入,并输出字节流。构造函数传入的编码类型会被忽略,始终创建一个 UTF-8 编码的 TextEncoder 对象。
TextEncoder() 返回一个新创建的 TextEncoder 对象,该对象使用 UTF-8 编码生成字节流。 TextEncoder 不接受任何参数,也不会抛出任何异常。
let encoder = new TextEncoder();
encoder.encoding (只读)
编码器的名称,以字符串形式描述 TextEncoder 使用的编码方法 (始终为 utf-8)。
encode(input)
对字符串 input 进行编码,返回一个 Uint8Array 类型的字节数组。
TextDecoder 接口表示一个解码器,用于将字节流解码为字符串。默认情况下,它会创建一个 UTF-8 解码器。
TextDecoder(label, options) 返回一个新创建的 TextDecoder 对象。
let decoder = new TextDecoder(label, options);
参数:
label (可选): 一个字符串,表示要使用的编码标签。默认值为 utf-8。支持的编码标签包括:
utf-8ibm866iso-8859-2iso-8859-3options (可选): 一个配置解码行为的对象,支持以下属性:
fatal: 一个布尔值,指示是否以致命模式处理解码错误。如果为 true,则遇到解码错误会抛出 TypeError 异常;如果为 false (默认值),则解码错误会被替换为 Unicode 替换字符 (U+FFFD)。ignoreBOM: 一个布尔值,指示是否忽略字节顺序标记 (BOM)。decoder.encoding (只读)
解码器的名称,以字符串形式描述 TextDecoder 使用的解码方法。
decoder.fatal (只读)
指示错误模式是否为致命模式。
decoder.ignoreBOM (只读)
指示是否忽略字节顺序标记 (BOM)。
decode(input, options)
使用 TextDecoder 对象中指定的方法解码输入的字节数组 input。options 参数是一个可选对象,用于配置解码行为。
参数:
input: 要解码的字节数组,可以是 Uint8Array、ArrayBuffer 或其他类似类型。
options (可选): 一个配置解码行为的对象,支持以下属性:
stream: 一个布尔值,指示是否以流式方式解码。如果为 true,则解码器会将输入视为一个字节流,并尽可能多地解码字节,直到遇到流结束或错误。如果为 false (默认值),则解码器会将整个输入解码为一个字符串。返回值:
返回一个解码后的字符串。
// 创建一个 TextEncoder 对象
const encoder = new TextEncoder();
// 使用 UTF-8 编码字符串 "helo,world! "
const encodedData = encoder.encode("helo,world! ");
// 创建一个 TextDecoder 对象,使用 GBK 编码
const decoder = new TextDecoder("gbk");
// 解码字节数组
const decodedString = decoder.decode(encodedData);
// 输出解码后的字符串
console.log(decodedString);