文字列エンコーディングを正確に決定することは、さまざまなソースからのテキスト データを処理するために重要です。この記事では、C# でこれを効率的に実現する方法について説明します。
明示的に指定せずに文字列のエンコードを決定する方法はいくつかあります。
提供されるコードは、BOM 検出から始まる文字列のエンコードを決定するために 3 つの方法をすべて組み合わせています。 BOM が見つからない場合、コードは検出機能を使用して、UTF-8 や UTF-16 などの一般的なエンコーディングをヒューリスティックに識別します。最後に、適切なエンコーディングが見つからない場合は、システムのデフォルトのコード ページに戻ります。
このコードはエンコードを検出するだけでなく、必要な情報を完全に提供するためにデコードされたテキストも返します。
次の C# コードはこのソリューションを実装しています:
<code class="language-c#">public Encoding detectTextEncoding(string filename, out String text, int taster = 1000) { // 检查BOM // 为简洁起见省略 // 基于探测器的编码检测 bool utf8 = false; int i = 0; while (i < taster) { // 省略具体实现细节 } // ... (其余代码省略) }</code>
このコードを使用するには、ファイル パスを文字列として指定し、検出されたエンコードとデコードされたテキストを出力パラメーターとして取得します。以下に例を示します:
```c# 文字列テキスト。 エンコーディング encoding = detectTextEncoding("my_file.txt", out text); Console.WriteLine("検出されたエンコーディング: " encoding.EncodingName); Console.WriteLine("デコードされたテキスト: " text); 「」要約すると、このコードは、BOM とヒューリスティック チェックを利用して正確な検出を保証し、C# で文字列のエンコードを決定する強力な方法を提供します。
以上がC# で文字列のエンコーディングを効率的に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。