一部のテキストファイルは、後でデコードするために、テキストコンテンツに沿ってエンコード方法を保存するのではないかと思いました。
Mark Szymanskiの答えは正しいです-プレーンテキストファイルには明示的なエンコーディング情報はありません-それは「プレーンテキストファイル」の定義です。「プレーン」は、ファイルにメタデータがないという事実を指します。
ただし、一部のアプリケーションでは、UTF-16またはUTF-32/UCS-4としてエンコードされたテキストファイルに バイトオーダーマーク (BOM)が配置されます。 BOMは実際にはエンコーディングを示すことを意図していません(名前が示すようにバイト順序を示します)が、多くのアプリケーションはBOMの存在を使用してUTF-16/UTF-32を認識するため、エンコーディングインジケータとして機能します。
または、特定のテキストファイルのエンコード方法を推測するのはテキストビューアの仕事であり、推測が常に正しいとは限りません。はいの場合、テキストビューアはどのようにそれを推測しますか?
はい、テキストビューアは推測することしかできません。通常、いくつかのヒューリスティックを使用します。
vim
はデフォルトで機能します:ファイルを読み取るときに最初にUTF-8を使用しようとします。それが失敗した場合は、ISO-8859-1にフォールバックします。ほとんどの場合、プログラムはテキストファイルのエンコーディングが何であるかを明示的に通知する必要があります。そうしないと、プログラムは正しく読み取ることができません。
プレーンテキストファイルには、エンコーディングに関する情報は保存されません。ビューアは、設定した文字エンコードに基づいてそれを決定します。それはコンピュータにとってすべて同じであるため、それ自体でそれを決定することはできません。