最新の更新情報

2012年2月
« 1月    
 1234
567891011
12131415161718
19202122232425
26272829  

本ブログのURL

qrcode.png

雨雲の動き

お天気

 
 
吟遊詩人の戯言 内専用の記事検索...
 
 

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


キーワード(クリックで関連記事が読めます) → , ,

関連記事



 
 

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


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

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

と,言うそうな

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

何のことは無い

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

    false=ボムなし指定

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

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

C#:
  1. //書き込み
  2. System.Text.UTF8Encoding u = new UTF8Encoding(false);
  3.  
  4. System.IO.StreamWriter sw = new System.IO.StreamWriter(@"c:¥hoge.txt", false, u);
  5.  
  6. sw.WriteLine("てすとほげほげ");
  7.  
  8. sw.Close();
  9.  
  10.  
  11.  
  12. //読み込み
  13. System.Text.UTF8Encoding u = new UTF8Encoding(false);
  14.  
  15. System.IO.StreamReader sr = new System.IO.StreamReader(@"c:¥hoge.txt", u);
  16.  
  17. string st = sr.ReadLine();
  18.  
  19. sr.Close();


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

 
 
 
 

コメントを残す

  

  

  

You can use these HTML tags

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