• source {Buffer|Uint8Array} 一个 Buffer 或 Uint8Array 实例。
    • fromEnc {string} 当前字符编码。
    • toEnc {string} 目标字符编码。
    • 返回: {Buffer}

    将指定的 Buffer 或 Uint8Array 实例从一个字符编码重新编码到另一个字符。 返回新的 Buffer 实例。

    如果 fromEnc 或 toEnc 指定了无效的字符编码,或者无法从 fromEnc 转换为 toEnc,则抛出异常。

    buffer.transcode() 支持的字符编码有 'ascii'、'utf8'、'utf16le'、'ucs2'、'latin1' 与 'binary'。

    如果指定的字节序列无法用目标字符编码表示,则转码过程会使用替代的字符。 例如:

    1. const buffer = require('buffer');
    2. const newBuf = buffer.transcode(Buffer.from('€'), 'utf8', 'ascii');
    3. console.log(newBuf.toString('ascii'));
    4. // 打印: '?'

    因为欧元符号(€)无法在 US-ASCII 中表示,所以在转码 Buffer 时使用 ? 代替。