potisanのプログラミングメモ

趣味のプログラマーがプログラミング関係で気になったことや調べたことをいつでも忘れられるようにメモするブログです。はてなブログ無料版なので記事の上の方はたぶん広告です。記事中にも広告挿入されるみたいです。

C# 8-9 ASCII、Unicode、システムのANSIエンコーディングの概要を表示する

各種エンコーディング(ASCIIエンコーディングUnicodeエンコーディング、言語設定により指定されたシステムのANSIエンコーディング)の概要とそれを取得するサンプルコードです。

出力例

ASCIIエンコーディング
CodePage: 20127
EncodingName: US-ASCII
WebName: us-ascii
HeaderName: us-ascii
BodyName: us-ascii

Unicodeエンコーディング
CodePage: 1200
EncodingName: Unicode
WebName: utf-16
HeaderName: utf-16
BodyName: utf-16

言語設定に依存するANSIエンコーディング
CodePage: 932
EncodingName: 日本語 (シフト JIS)
WebName: shift_jis
HeaderName: iso-2022-jp
BodyName: iso-2022-jp

サンプルコード

C# 9.0(トップレベステートメント

using System;
using System.Globalization;
using System.Text;

// ASCIIエンコーディングの概要
ConsoleWriteCodePageSummary("ASCIIエンコーディング", Encoding.ASCII);
// Unicodeエンコーディングの概要
ConsoleWriteCodePageSummary("Unicodeエンコーディング", Encoding.Unicode);
// 言語設定に依存するANSIエンコーディングの概要
var ansiCodePage = CultureInfo.CurrentCulture.TextInfo.ANSICodePage;
ConsoleWriteCodePageSummary("言語設定に依存するANSIエンコーディング",
    Encoding.GetEncoding(ansiCodePage));

static void ConsoleWriteCodePageSummary(string caption, Encoding encoding)
{
    Console.WriteLine(caption);
    Console.WriteLine($"CodePage: {encoding.CodePage}");
    Console.WriteLine($"EncodingName: {encoding.EncodingName}");
    Console.WriteLine($"WebName: {encoding.WebName}");
    Console.WriteLine($"HeaderName: {encoding.HeaderName}");
    Console.WriteLine($"BodyName: {encoding.BodyName}");
    Console.WriteLine();
}

C# 8.0

using System;
using System.Globalization;
using System.Text;

class Program
{
    static void Main()
    {
        // ASCIIエンコーディングの概要
        ConsoleWriteCodePageSummary("ASCIIエンコーディング", Encoding.ASCII);
        // Unicodeエンコーディングの概要
        ConsoleWriteCodePageSummary("Unicodeエンコーディング", Encoding.Unicode);
        // 言語設定に依存するANSIエンコーディングの概要
        var ansiCodePage = CultureInfo.CurrentCulture.TextInfo.ANSICodePage;
        ConsoleWriteCodePageSummary("言語設定に依存するANSIエンコーディング",
            Encoding.GetEncoding(ansiCodePage));
    }

    static void ConsoleWriteCodePageSummary(string caption, Encoding encoding)
    {
        Console.WriteLine(caption);
        Console.WriteLine($"CodePage: {encoding.CodePage}");
        Console.WriteLine($"EncodingName: {encoding.EncodingName}");
        Console.WriteLine($"WebName: {encoding.WebName}");
        Console.WriteLine($"HeaderName: {encoding.HeaderName}");
        Console.WriteLine($"BodyName: {encoding.BodyName}");
        Console.WriteLine();
    }
}

2021/3/10:この記事は別のブログで投稿した記事を移動したものです。