C# でのファイル エンコーディングの正確な識別
ファイルのエンコーディングを正確に決定することは、データを正しく処理するために非常に重要です。 StreamReader.CurrentEncoding
は失敗することがありますが、より堅牢な方法にはバイト オーダー マーク (BOM) の分析が含まれます。このアプローチは、メモ帳で使用されるものと同様で、より高い精度を提供します。
バイト オーダー マーク (BOM) の活用
BOM の存在は、エンコーディングの識別に非常に役立ちます。 次の BOM 値は、特定のエンコーディングに対応します:
BOM が検出されない場合、エラーを防ぐためにコードはデフォルトの ASCII に設定されます。
BOM 分析のための C# コード実装
次の C# コードは、この BOM ベースのエンコード検出を示しています。
<code class="language-csharp">public static Encoding GetEncoding(string filename) { byte[] bom = new byte[4]; using (FileStream file = new FileStream(filename, FileMode.Open, FileAccess.Read)) { file.Read(bom, 0, 4); } // BOM analysis logic (see complete implementation below) return Encoding.ASCII; // Default to ASCII if no BOM is found }</code>
この関数は、ファイルの最初のバイトを効率的に読み取り、それを使用してエンコードを決定します。 次に、BOM 分析の完全な実装が続き、各 BOM ケースを個別に処理して、適切な Encoding
オブジェクトを返します。 これにより、さまざまなテキスト ファイル形式にわたって信頼性の高いエンコード検出が保証されます。
以上がC# でファイルのエンコーディングを正確に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。