更新时间: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-8
ibm866
iso-8859-2
iso-8859-3
options
(可选): 一个配置解码行为的对象,支持以下属性:
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);