最近知ったんですが
文字コード,UTF-8で書かれるファイルには,実は2種類あるそうで
UTF-8文字列じゃ!と確実に認識させるためにマーカー(BOM:ボム)をファイル先頭に置くケースがあったり
置かないケースがあったり...
- ボムを置くファイルをUTF-8
ボムを置かないファイルをUTF-8N
と,言うそうな
C#で,StreamReader,StreamWriterのサンプルは,ほとんど,ボムありのファイルを生成しますです
今回,ボム無しのファイルを作る必要があったので,ちょろっと書き起こしてみました
何のことは無い
System.Text.UTF8Encodingクラスのインスタンス生成時に
- false=ボムなし指定
を渡して作ればいいそうで
サンプル,書いておきますです
C#:
- //書き込み
- sw.WriteLine("てすとほげほげ");
- sw.Close();
- //読み込み
- string st = sr.ReadLine();
- sr.Close();
なお,ボムコードは 0xEF 0xBB 0xBFの3バイトだそうです



