如何检测 Node.js 缓冲区中的编码错误

How to detect encoding errors in a Node.js Buffer

我正在将 Node.js 中的文件读入 Buffer 对象,并且我正在使用 Buffer.toString('utf8') 解码 Buffer 的 UTF-8 内容.如果有编码错误,我要报错

toString() 方法通过替换 xFFFD 字符来处理解码错误,我可以通过搜索结果检测到。但是 xFFFD 在输入文件中是一个合法字符,如果 xFFFD 存在并且在输入中正确编码,我不想报告错误。

有什么方法可以区分包含合法编码 xFFFD 字符的 Buffer 和包含编码错误的字符?

问题评论中@eol提出的方案似乎符合要求