バイトオーダーマーク(BOM)なしでC#文字列データをUTF-8ファイルに書き出そうとしていますが、ANSIファイルが作成されています。
using (StreamWriter objStreamWriter = new StreamWriter(SomePath, false, new UTF8Encoding(false)))
{
objStreamWriter.Write("Hello world - Encoding no BOM but actually returns ANSI");
objStreamWriter.Close();
}
UTF8Encodingクラスコンストラクターのドキュメントによると、 encoderShouldEmitUTF8Identifierパラメーターをfalseに設定すると、バイト順マークが禁止されます。
イギリス(en-gb)コンピューターで.NETFramework4.5を使用しています。以下は、UTF8Encodingが配置されていることを示すScreenWriterオブジェクトのスクリーンショットです。
では、なぜこの操作からANSIファイル(Notepad ++でチェック)を取得するのですか?