二进制和utf8有什么区别?

What is the difference between binary and utf8?

This node library checks whether a buffer is binary or utf8, but the contents of the test files (ansi.txt, utf8.txt) 看起来完全一样,我找不到任何明确的差异解释。

binary和utf8到底有什么区别?

“二进制”只是对非人类可读文本数据的统称。它与编码无关。此外,除了 UTF-8 之外,还有许多其他方法可以对文本进行编码,因此二进制和 UTF-8 并不是唯一可能的数据类型。

文档说 isUtf8 检查它是否以 UTF-8 编码。如果 return 为真,则您知道该文件是用 UTF-8 编码的。但是,如果它 return 为 false,您可以 not 断定该文件包含二进制数据,因为它也可以用 UTF-16、ANSI 或其他文本编码格式进行编码不被视为二进制文件。

根据源代码,该函数读取整个文件并检查 ASCII 范围之外的 UTF-8 编码字符。如果文件中只有 ASCII 字符,它看起来 return 为真,因为文件在 UTF-8 编码中是相同的。