Luk*_*odt 4 javascript utf-8 node.js
我有一个Buffer
对象,我想检查它是否全部都是有效的 UTF-8。理想情况下,我也想得到一个string
带有上述解码的 UTF-8 文本。
我尝试了Buffer.toString
它采用encoding
默认为 的参数utf8
。不幸的是,文档是这样说的:
如果
encoding
是'utf8'
并且输入中的字节序列不是有效的 UTF-8,则每个无效字节将替换为替换字符U+FFFD
。
这不是我想要的:我宁愿想要一个异常或一个布尔标志。只需检查结果字符串是否包含U+FFFD
与输入文本可能已包含的内容不同U+FFFD
(就像有效的 Unicode 代码点一样)。当然,可以尝试U+FFFD
在缓冲区和字符串中计数,然后进行比较,但这似乎毫无用处,复杂且低效。
有没有更好的办法?
import NodeBuffer, {Buffer} from "node:buffer";
Run Code Online (Sandbox Code Playgroud)
NodeBuffer.isUtf8(input)
- 添加于:版本19.4.0、版本18.14.0。
input
(<Buffer>
|<ArrayBuffer>
|<TypedArray>
)
true
如果输入仅包含有效的 UTF-8 编码数据(包括为空的情况),则该函数返回input
。如果
input
是分离的数组缓冲区,则抛出异常。
归档时间: |
|
查看次数: |
1331 次 |
最近记录: |