Encoding

更新时间:2024-08-14 19:50:30

TextEncoder

TextEncoder 接口接收 Unicode 码点流作为输入,并输出字节流。构造函数传入的编码类型会被忽略,始终创建一个 UTF-8 编码的 TextEncoder 对象。

TextEncoder() 返回一个新创建的 TextEncoder 对象,该对象使用 UTF-8 编码生成字节流。 TextEncoder 不接受任何参数,也不会抛出任何异常。

构造函数

let encoder = new TextEncoder();

属性

  • encoder.encoding (只读)

    编码器的名称,以字符串形式描述 TextEncoder 使用的编码方法 (始终为 utf-8)。

方法

  • encode(input)

    对字符串 input 进行编码,返回一个 Uint8Array 类型的字节数组。

TextDecoder

TextDecoder 接口表示一个解码器,用于将字节流解码为字符串。默认情况下,它会创建一个 UTF-8 解码器。

TextDecoder(label, options) 返回一个新创建的 TextDecoder 对象。

构造函数

let decoder = new TextDecoder(label, options);

参数:

  • label (可选): 一个字符串,表示要使用的编码标签。默认值为 utf-8。支持的编码标签包括:

  • options (可选): 一个配置解码行为的对象,支持以下属性:

    • fatal: 一个布尔值,指示是否以致命模式处理解码错误。如果为 true,则遇到解码错误会抛出 TypeError 异常;如果为 false (默认值),则解码错误会被替换为 Unicode 替换字符 (U+FFFD)。
    • ignoreBOM: 一个布尔值,指示是否忽略字节顺序标记 (BOM)。

属性

  • decoder.encoding (只读)

    解码器的名称,以字符串形式描述 TextDecoder 使用的解码方法。

  • decoder.fatal (只读)

    指示错误模式是否为致命模式。

  • decoder.ignoreBOM (只读)

    指示是否忽略字节顺序标记 (BOM)。

方法

  • decode(input, options)

    使用 TextDecoder 对象中指定的方法解码输入的字节数组 inputoptions 参数是一个可选对象,用于配置解码行为。

    参数:

    • input: 要解码的字节数组,可以是 Uint8ArrayArrayBuffer 或其他类似类型。

    • 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); 

参考信息

本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!