Javascript 二进制和utf8之间有什么区别?

Javascript 二进制和utf8之间有什么区别?,javascript,character-encoding,buffer,Javascript,Character Encoding,Buffer,节点库检查缓冲区是二进制还是utf8,但测试文件(,)的内容看起来完全相同,我找不到任何关于差异的清晰解释 二进制和utf8之间到底有什么区别?“二进制”只是非人类可读文本数据的通用术语。它与编码无关。此外,除了UTF-8,还有很多其他编码文本的方法,因此二进制和UTF-8不是唯一可能的数据类型 文档中说,isUtf8检查它是否以UTF-8编码。如果返回true,您就知道该文件是用UTF-8编码的。但是,如果返回false,则可以推断文件包含二进制数据,因为它也可以用UTF-16、ANSI或其他

节点库检查缓冲区是二进制还是utf8,但测试文件(,)的内容看起来完全相同,我找不到任何关于差异的清晰解释

二进制和utf8之间到底有什么区别?

“二进制”只是非人类可读文本数据的通用术语。它与编码无关。此外,除了UTF-8,还有很多其他编码文本的方法,因此二进制和UTF-8不是唯一可能的数据类型

文档中说,
isUtf8
检查它是否以UTF-8编码。如果返回true,您就知道该文件是用UTF-8编码的。但是,如果返回false,则可以推断文件包含二进制数据,因为它也可以用UTF-16、ANSI或其他非二进制的文本编码格式进行编码


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

@Sleafar没有提到那篇文章中的二进制代码。通常二进制代码与文本数据相反。在您的上下文中,它似乎表示“不是UTF8”。如果你想了解哲学,你可以说计算机处理的所有数据都是二进制的。这完全取决于上下文。utf8.txt中没有第13行,对我来说只有7行。“非UTF-8”与“二进制”不同,我不理解,所以
utf8===binary
?双重否定让人有点难以理解。你能换一种说法吗?哦,对不起,看起来我的浏览器把我转到了一些不相关的地方,而不是实际的文件。文件是一样的,我重新措辞了我的答案。需要说明的是:utf8不等于二进制。文件不相同。UTF8版本更大。按下“原始”按钮,你会看到不同。好吧,看起来我现在想不清楚。我想我检查了两个文件哈希,但你当然是对的。