Buffer 是什么?和 String 有什么不同?
Buffer 是 Node 对二进制数据的直接内存视图(类似 Uint8Array),用于处理网络包、文件、图片等非文本字节。
const buf = Buffer.from('你好', 'utf8') // <Buffer e4 bd a0 e5 a5 bd>
console.log(buf.length) // 6(UTF-8 下中文占 3 字节)
console.log(buf.toString('utf8')) // '你好'区别:
String是字符序列(UTF-16),关心「语义字符」Buffer是字节序列,关心「物理字节」,能精确控制编码/截断
坑:
Buffer.toString('utf8')若字节在边界被截断会出现乱码,处理流式文本应用StringDecoder自动补帧。