Console.OutputEncoding Property System.
.NET 4.5からコンソール出力でUTF-16に対応と聞いて、今(.NET 4)どうなっているか確認してみました。
namespace EncodeTest
{
class Program
{
static void Main(string[] args) {
//標準のエンコードを表示。しかし!ここで表示されるのはShift_JISで
//Windows-31Jじゃない!!うそつきー!!
Console.WriteLine("IANA Name : {0}", Console.OutputEncoding.WebName);
//確認のためコードページも表示。932って表示されるよ!
Console.WriteLine("Code Page : {0}", Console.OutputEncoding.CodePage);
//UTF-8 BOM無しを指定してみる
Console.OutputEncoding = new UTF8Encoding();
//utf-8
Console.WriteLine("IANA Name : {0}", Console.OutputEncoding.WebName);
//65001が表示される。
Console.WriteLine("Code Page : {0}", Console.OutputEncoding.CodePage);
Console.Read();
}
}
}
出力
うーんIANAはShift_JISじゃなくWindows-31Jと表示してほしいところ。。。
表示というか、コンソール自体がUTF-8に変わってますね(あたりまえ)
で、ここの出力設定を変更すればUTF-8と同じようにでUTF-16を.NET 4.5ではサポートしますよと。
コメント