vkj*_*fef 7 javascript buffer character-encoding
该节点库检查缓冲区是二进制还是 utf8,但测试文件(ansi.txt、utf8.txt)的内容看起来完全相同,我找不到任何关于差异的明确解释。
二进制和utf8到底有什么区别?
“二进制”只是非人类可读文本数据的总称。它与编码无关。此外,除了 UTF-8 之外,还有很多其他方法可以对文本进行编码,因此二进制和 UTF-8 并不是唯一可能的数据类型。
文档说isUtf8检查它是否以 UTF-8 编码。如果返回 true,您就知道该文件是用 UTF-8 编码的。但是,如果它返回 false,则不能断定该文件包含二进制数据,因为它也可能以 UTF-16、ANSI 或其他不被视为二进制的文本编码格式进行编码。
根据源代码,该函数读取整个文件并检查 ASCII 范围之外的 UTF-8 编码字符。如果文件中只有 ASCII 字符,它看起来会返回 true,因为文件在 UTF-8 编码中是相同的。