C#で、utf8(BOM無し)のテキストファイルを出力する

More than 1 year has passed since last update.

C# で、utf8 のテキストファイルを出力しようと、何も考えずに以下のようなコードを書くと

SAMPLE1
var utf8_encoding = Encoding.GetEncoding("utf-8");
using (var writer = new StreamWriter("UTF8.TXT", false, utf8_encoding))
{
    writer.WriteLine("あいうえお");
}

ファイル先頭に BOM (Byte Order Mark) が付与されたがっかりすることになる。

BOMなしの utf8 なテキストファイルを出力するには、

SAMPLE2
var utf8_encoding = new System.Text.UTF8Encoding(false);
using (var writer = new StreamWriter("UTF8.TXT", false, utf8_encoding))
{
    writer.WriteLine("あいうえお");
}

とすれば良い。

参考:UTF8Encoding クラス (System.Text)

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.