【发布时间】:2023-01-13 19:39:55
【问题描述】:
我有一个 Buffer 对象,我想检查它是否全部都是有效的 UTF-8。理想情况下,我也想获得带有所述已解码 UTF-8 文本的 string。
我试过Buffer.toString,它接受一个默认为utf8的encoding参数。不幸的是,文档是这样说的:
如果
encoding是'utf8'并且输入中的字节序列不是有效的 UTF-8,则每个无效字节都将替换为替换字符U+FFFD。那不是我想要的:我更想要一个异常或一个布尔标志。只是检查结果字符串是否包含
U+FFFD与输入文本可能已经包含U+FFFD不同(就像一个有效的 Unicode 代码点)。当然,可以尝试在缓冲区和字符串中计算U+FFFD,然后进行比较,但这似乎毫无用处,而且效率低下。有没有更好的办法?
【问题讨论】:
标签: javascript node.js utf-8