.NET Console出力のエンコード(文字コード)を変更する (I18N)

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ではサポートしますよと。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください