使用するエンコーディング自体がテキストファイルで指定されている複数のエンコーディングを含むテキストファイルがあります(vCard形式はこれを可能にする例です)。次に例を示します。
charset=windows-1251: ABCDE
charset=utf-8: VWXYZ
...ここで、「ABCDE」は「windows-1251」のエンコードとして解釈され、「VWXYZ」はUTF8になります。最終的には、すべてを標準の文字列(C#ではUTF2 / UTF16)に変換する必要があります。
RealAllText()を使用したいと思います。特に指定がない限り、デフォルトのエンコーディングが自動的に役立つように見えるからです。上記のように文字セットを指定すると、デフォルトのエンコーディングが上書きされます。
残念ながら、さまざまなエンコーディングを探すためにテキスト解析も行う必要があるため、ReadAllBytes()が必要になると思います。これにより、より生の形式で文字ごとに解析できます。
私も速くしたいです。これに対処する最良の方法は何ですか?