tencent cloud

文档反馈

Encoding

最后更新时间:2024-01-30 16:53:08
    基于 Web APIs 标准 TextEncoderTextDecoder 进行设计,实现了编码器与解码器。

    TextEncoder

    编码器,接受码点流作为输入,并输出 UTF-8 字节流。请参考 MDN 官方文档 TextEncoder

    构造函数

    // TextEncoder 构造函数,不接受任何参数。
    const encoder = new TextEncoder();

    属性

    // encoder.encoding
    readonly encoding: string;
    编码器的编码类型,当前值仅为 UTF-8

    方法

    encode

    encoder.encode(input?: string | undefined): Uint8Array
    接受码点流作为输入,并输出 UTF-8 字节流。
    注意:
    input 最大长度为 300M,超出长度会抛出异常。
    encoder.encode 参数
    参数名称
    类型
    必填
    说明
    input
    string | undefined
    编码器输入值。

    encodeInto

    encoder.encodeInto(input: string, destination: Uint8Array): EncodeIntoResult;
    接受码点流作为输入,输出 UTF-8 字节流,并写入到参数 destination 字节数组中。
    参数
    参数名称
    类型
    必填
    说明
    input
    string
    编码器输入值。
    destination
    编码器输出值。
    返回值 EncodeIntoResult
    属性名
    类型
    说明
    read
    number
    已转换为 UTF-8 的 UTF-16 单元数。
    written
    number
    目标 Uint8Array 中修改的字节数。

    TextDecoder

    解码器。将字节流作为输入,并提供码点流作为输出。请参考 MDN 官方文档 TextDecoder

    构造方法

    const decoder = new TextDecoder(label?: string | undefined, options?: DecoderOptions | undefined): TextEncoder;

    参数

    注意:
    参数 label ,下述的值暂不支持:
    iso-8859-16。
    hz-gb-2312。
    csiso2022kr,iso-2022-kr。
    参数名称
    类型
    必填
    说明
    label
    string | undefined
    解码器类型,默认值为 UTF-8。可选的 label 值参考 MDN 官方文档
    options
    DecoderOptions | undefined
    解码器配置项

    DecoderOptions

    解码器配置项如下所示。
    属性名
    类型
    默认值
    说明
    fatal
    boolean
    false
    标识解码失败时是否抛出异常
    ignoreBOM
    boolean
    false
    标识是否忽略 byte-order marker

    属性

    encoding

    // decoder.encoding
    readonly encoding: string;
    解码器类型。

    fatal

    // decoder.fatal
    readonly fatal: boolean;
    当解码失败,标识是否抛出异常。

    ignoreBOM

    // decoder.ignoreBOM
    readonly ignoreBOM: boolean;
    标识是否忽略 byte-order marker

    方法

    decode

    const result = decoder.decode(buffer?: ArrayBuffer | ArrayBufferView | undefined, options?: DecodeOptions | undefined): string;
    注意:
    参数 buffer 最大长度为 100M,超出长度会抛出异常。
    参数名称
    类型
    必填
    说明
    buffer
    待解码的字节流。
    buffer 最大长度为 100M,超出长度会抛出异。
    options
    执行解码配置项。

    DecodeOptions

    执行解码配置项如下所示。
    属性名
    类型
    默认值
    说明
    stream
    boolean
    false
    设置流式解码,默认为 false ,取值说明如下。
    true
    表示以 chunk 的方式处理数据,即流式解码。
    false
    表示 chunk 已结束或未使用 chunk 处理数据,即非流式解码。

    示例代码

    function handleEvent(event) {
    // 编码器
    const encoder = new TextEncoder();
    const encodeText = encoder.encode('hello world');
    
    // 解码器
    const decoder = new TextDecoder();
    const decodeText = decoder.decode(encodeText);
    
    // 客户端响应内容
    const response = new Response(JSON.stringify({
    encodeText: encodeText.toString(),
    decodeText,
    }));
    
    return response;
    }
    
    addEventListener('fetch', (event) => {
    event.respondWith(handleEvent(event));
    });

    相关参考

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持