.NetFrameworkにて UTF-8N(ボムなし)の文字列の読み書き

最近知ったんですが
文字コード,UTF-8で書かれるファイルには,実は2種類あるそうで


UTF-8文字列じゃ!と確実に認識させるためにマーカー(BOM:ボム)をファイル先頭に置くケースがあったり
置かないケースがあったり...

    ボムを置くファイルをUTF-8
    ボムを置かないファイルをUTF-8N

と,言うそうな

C#で,StreamReader,StreamWriterのサンプルは,ほとんど,ボムありのファイルを生成しますです
今回,ボム無しのファイルを作る必要があったので,ちょろっと書き起こしてみました

何のことは無い

System.Text.UTF8Encodingクラスのインスタンス生成時に

    false=ボムなし指定

を渡して作ればいいそうで

サンプル,書いておきますです

//書き込み
System.Text.UTF8Encoding u = new UTF8Encoding(false);

System.IO.StreamWriter sw = new System.IO.StreamWriter(@"c:¥hoge.txt", false, u);

sw.WriteLine("てすとほげほげ");

sw.Close();



//読み込み
System.Text.UTF8Encoding u = new UTF8Encoding(false);

System.IO.StreamReader sr = new System.IO.StreamReader(@"c:¥hoge.txt", u);

string st = sr.ReadLine();

sr.Close();

なお,ボムコードは 0xEF 0xBB 0xBFの3バイトだそうです