readable.setEncoding(encoding)
readable.setEncoding()
方法为从 Readable
流读取的数据设置字符编码。
默认情况下,没有分配编码,流数据将作为 Buffer
对象返回。
设置编码会导致流数据作为指定编码的字符串而不是 Buffer
对象返回。
例如,调用 readable.setEncoding('utf8')
将导致输出数据被解释为 UTF-8 数据,并作为字符串传入。
调用 readable.setEncoding('hex')
将使数据以十六进制字符串格式进行编码。
Readable
流将正确地处理通过流传递的多字节字符,否则如果简单地从流中提取为 Buffer
对象,这些字符将无法正确解码。
const readable = getReadableStreamSomehow();
readable.setEncoding('utf8');
readable.on('data', (chunk) => {
assert.equal(typeof chunk, 'string');
console.log('Got %d characters of string data:', chunk.length);
});
The readable.setEncoding()
method sets the character encoding for
data read from the Readable
stream.
By default, no encoding is assigned and stream data will be returned as
Buffer
objects. Setting an encoding causes the stream data
to be returned as strings of the specified encoding rather than as Buffer
objects. For instance, calling readable.setEncoding('utf8')
will cause the
output data to be interpreted as UTF-8 data, and passed as strings. Calling
readable.setEncoding('hex')
will cause the data to be encoded in hexadecimal
string format.
The Readable
stream will properly handle multi-byte characters delivered
through the stream that would otherwise become improperly decoded if simply
pulled from the stream as Buffer
objects.
const readable = getReadableStreamSomehow();
readable.setEncoding('utf8');
readable.on('data', (chunk) => {
assert.equal(typeof chunk, 'string');
console.log('Got %d characters of string data:', chunk.length);
});