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'
。
如果指定的字节序列无法用目标字符编码表示,则转码过程会使用替代的字符。 例如:
const buffer = require('buffer');
const newBuf = buffer.transcode(Buffer.from('€'), 'utf8', 'ascii');
console.log(newBuf.toString('ascii'));
// 打印: '?'
因为欧元符号(€
)无法在 US-ASCII 中表示,所以在转码 Buffer
时使用 ?
代替。