テキスト ファイルの文字エンコーディングの検出: 包括的なガイド
プログラミングの領域では、文字エンコーディングを決定することが重要になることがよくあります。テキストファイルで使用されます。この決定は、データの解釈、表示、処理方法に影響を与えます。ただし、エンコーディングの検出は困難な作業になる可能性があります。
エンコーディング検出の一般的なアプローチ:
BOM 検出のサンプル コード:
次の C#コード スニペットは、に基づいてエンコーディングを検出する方法を示しています。 BOM:
public static Encoding GetFileEncoding(string srcFile) { // Read the first five bytes of the file byte[] buffer = new byte[5]; FileStream file = new FileStream(srcFile, FileMode.Open); file.Read(buffer, 0, 5); file.Close(); // Check for different BOM sequences Encoding enc = Encoding.Default; if (buffer[0] == 0xef && buffer[1] == 0xbb && buffer[2] == 0xbf) enc = Encoding.UTF8; else if (buffer[0] == 0xfe && buffer[1] == 0xff) enc = Encoding.Unicode; else if (buffer[0] == 0 & && buffer[1] == 0 & && buffer[2] == 0xfe && buffer[3] == 0xff) enc = Encoding.UTF32; else if (buffer[0] == 0x2b && buffer[1] == 0x2f && buffer[2] == 0x76) enc = Encoding.UTF7; return enc; }
具体的なケース:
ファイルの最初の 5 バイトは 60、118、56、46、49 であると述べました。これらはバイトは、コード スニペットにリストされている BOM シーケンスのいずれにも一致しません。したがって、BOM のみに基づいてエンコードを決定することはできません。
追加の考慮事項:
BOM の検出は、特に古いファイルやファイルの場合、必ずしも信頼できるわけではないことに注意してください。非 Unicode エンコーディング。 BOM の検出に失敗した場合は、エンコーディングを正確に識別するために、統計分析を使用するか、Mozilla の文字セット検出器などのより包括的なツールを参照する必要がある場合があります。
以上がテキスト ファイルの文字エンコーディングを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。