質問: ### 知りたいこと バイナリエディタでShift_JISエンコードされたテキストファイルを見たのですが、メタデータらしきものがありませんでした。 画像ファイルなどではメタデータで形式を判別出来ると思うのですが、Shift_JISやUTF-8などの文字エンコードはどのように判別されるのでしょうか?
回答: Unicodeには、BOM - WikiPedia がありますが、Shift-JISには、このようなものはありません。実際のコード(バイト)列を見て判定するだけです。従って誤判定はよくある話。 また、Unicodeでも BOMは必須で無いので、無い場合は同様にデータ見て、可能性高そうなのを選択する。 と、日本語を前提として話で、他言語も同様ですね。 まあ、コードによって出現頻度/順序には癖があるので、ある程度の量があれば、そこそこの確度での判定ができます。 あ、日本語コードと言うと、ISO-2022-JP(JISコード)、EUC-JPなんてのもありました。今の使用頻度は低いと思いますが、、。こちらもちょっと頭の片隅に入れておいた方が良いかも。