文本文件编码方案

Text file encoding scheme

应用程序(例如 vim)如何在读取给定文本文件之前知道其格式(即 ASCII、unicode 等)?

另外,我们如何编写一个 C++ 程序来检测相同的内容?

他们通常在阅读之前并不知道。有时他们在阅读文件后并不知道——大多数人查看文件的开头,并试图猜测其中包含的数据的编码。

在某些情况下,这可能非常容易(例如,如果它以 Unicode BOM 开头),但在其他情况下则相当困难。有一次,Microsoft 的 "IsTextUnicode" 对相当多的英文文本做出了错误的猜测,因此记事本(对于使用它的一个程序)会让你在文件中键入一个东西,然后当你再次打开该文件时,它会显示完全不同的东西,因为您输入的英文被解释为以 Unicode 编码的汉字。