最新の更新情報

 
このブログ「吟遊詩人の戯言」 の記事検索...

.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バイトだそうです

 
 
 
 

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">