缓冲区到字符串?

Buffer to String?

对于字符串解码目的,方法 1 相对于方法 2 的优势是什么?

方法一:

const { StringDecoder } = require('string_decoder')
const decoder = new StringDecoder('utf-8')
let body = ''
req.on('data', data => {
  body += decoder.write(data)
})

方法二:

let body = ''
req.on('data', data => {
  body += data.toString()
})

如果多字节 UTF8 字符的第一个字节可能包含在第一个缓冲区(块)中,第二个字节可能包含在第二个缓冲区中,那么您应该使用 StringDecoder.

Reference: convert streamed buffers to utf8-string