我有一个Buffer
对象,我想检查它是否都是有效的UTF-8。理想情况下,我也想得到一个带有解码的UTF-8文本的string
。
我尝试了Buffer.toString
,它接受一个encoding
参数,默认为utf8
。不幸的是,文档是这样说的:
如果encoding
是'utf8'
,并且输入中的字节序列不是有效的UTF-8,则每个无效字节都被替换字符U+FFFD
替换。
这不是我想要的我更希望有一个异常或布尔标记,只是检查结果字符串是否包含U+FFFD
,而输入文本可能已经包含了U+FFFD
(就像一个有效的Unicode码点一样),当然可以尝试计算缓冲区和字符串中的U+FFFD
,然后进行比较,但这似乎是无用的复杂和低效。
有更好的办法吗?
1条答案
按热度按时间5ssjco0h1#
您可以从
util
使用TextDecoder
。要获取异常,请将fatal
标志设置为true
。例如: