4
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【C#】 Encoding.GetEncoding()の主要な表記

Last updated at Posted at 2020-08-12

概要

テキスト ファイルを操作するコンソール アプリを作成していて、ファイルの文字コード指定方法をオプション化するために、Encoding.GetEncoding()で指定可能な主要な表記を調べてみた。

要約

主要な表記一覧取得結果

code                                                                      class CodePage Windows​CodePage GetPreamble() EncodingName HeaderName BodyName WebName
Encoding​.GetEncoding(1252) SBCSCodePageEncoding 1252 1252 (0) 西ヨーロッパ言語 (Windows) Windows⁠-⁠1252 iso⁠-⁠8859⁠-⁠1 Windows⁠-⁠1252
Encoding​.GetEncoding(932) DBCSCodePageEncoding 932 932 (0) 日本語 (シフト JIS) iso⁠-⁠2022⁠-⁠jp iso⁠-⁠2022⁠-⁠jp shift_jis
Encoding​.GetEncoding(65001) UTF8Encoding 65001 1200 EF BB BF (3) Unicode (UTF⁠-⁠8) utf⁠-⁠8 utf⁠-⁠8 utf⁠-⁠8
Encoding​.GetEncoding("s⁠-⁠jis") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("shift⁠-⁠jis") DBCSCodePageEncoding 932 932 (0) 日本語 (シフト JIS) iso⁠-⁠2022⁠-⁠jp iso⁠-⁠2022⁠-⁠jp shift_jis
Encoding​.GetEncoding("cp932") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("ms932") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("windows⁠-⁠31j") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("utf⁠-⁠7") UTF7Encoding 65000 1200 (0) Unicode (UTF⁠-⁠7) utf⁠-⁠7 utf⁠-⁠7 utf⁠-⁠7
Encoding​.GetEncoding("utf⁠-⁠8") UTF8Encoding 65001 1200 EF BB BF (3) Unicode (UTF⁠-⁠8) utf⁠-⁠8 utf⁠-⁠8 utf⁠-⁠8
Encoding​.GetEncoding("utf⁠-⁠16") UnicodeEncoding 1200 1200 FF FE (2) Unicode utf⁠-⁠16 utf⁠-⁠16 utf⁠-⁠16
Encoding​.GetEncoding("utf⁠-⁠16be") UnicodeEncoding 1201 1200 FE FF (2) Unicode (Big⁠-⁠Endian) utf⁠-⁠16BE utf⁠-⁠16BE utf⁠-⁠16BE
Encoding​.GetEncoding("utf⁠-⁠16le") UnicodeEncoding 1200 1200 FF FE (2) Unicode utf⁠-⁠16 utf⁠-⁠16 utf⁠-⁠16
Encoding​.GetEncoding("utf⁠-⁠32") UTF32Encoding 12000 1200 FF FE 00 00 (4) Unicode (UTF⁠-⁠32) utf⁠-⁠32 utf⁠-⁠32 utf⁠-⁠32
Encoding​.GetEncoding("utf⁠-⁠32be") UTF32Encoding 12001 1200 00 00 FE FF (4) Unicode (UTF⁠-⁠32 ビッグ エンディアン) utf⁠-⁠32BE utf⁠-⁠32BE utf⁠-⁠32BE
Encoding​.GetEncoding("utf⁠-⁠32le") UTF32Encoding 12000 1200 FF FE 00 00 (4) Unicode (UTF⁠-⁠32) utf⁠-⁠32 utf⁠-⁠32 utf⁠-⁠32
Encoding​.GetEncoding("utf⁠-⁠7n") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("utf⁠-⁠8n") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("utf⁠-⁠16n") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("utf⁠-⁠16ben") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("utf⁠-⁠16len") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("utf⁠-⁠32n") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("utf⁠-⁠32ben") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("utf⁠-⁠32len") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("ucs⁠-⁠1") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("ucs⁠-⁠2") UnicodeEncoding 1200 1200 FF FE (2) Unicode utf⁠-⁠16 utf⁠-⁠16 utf⁠-⁠16
Encoding​.GetEncoding("ucs⁠-⁠4") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("S⁠-⁠JIS") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("SHIFT⁠-⁠JIS") DBCSCodePageEncoding 932 932 (0) 日本語 (シフト JIS) iso⁠-⁠2022⁠-⁠jp iso⁠-⁠2022⁠-⁠jp shift_jis
Encoding​.GetEncoding("CP932") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("MS932") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("WINDOWS⁠-⁠31J") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("UTF⁠-⁠7") UTF7Encoding 65000 1200 (0) Unicode (UTF⁠-⁠7) utf⁠-⁠7 utf⁠-⁠7 utf⁠-⁠7
Encoding​.GetEncoding("UTF⁠-⁠8") UTF8Encoding 65001 1200 EF BB BF (3) Unicode (UTF⁠-⁠8) utf⁠-⁠8 utf⁠-⁠8 utf⁠-⁠8
Encoding​.GetEncoding("UTF⁠-⁠16") UnicodeEncoding 1200 1200 FF FE (2) Unicode utf⁠-⁠16 utf⁠-⁠16 utf⁠-⁠16
Encoding​.GetEncoding("UTF⁠-⁠16BE") UnicodeEncoding 1201 1200 FE FF (2) Unicode (Big⁠-⁠Endian) utf⁠-⁠16BE utf⁠-⁠16BE utf⁠-⁠16BE
Encoding​.GetEncoding("UTF⁠-⁠16LE") UnicodeEncoding 1200 1200 FF FE (2) Unicode utf⁠-⁠16 utf⁠-⁠16 utf⁠-⁠16
Encoding​.GetEncoding("UTF⁠-⁠32") UTF32Encoding 12000 1200 FF FE 00 00 (4) Unicode (UTF⁠-⁠32) utf⁠-⁠32 utf⁠-⁠32 utf⁠-⁠32
Encoding​.GetEncoding("UTF⁠-⁠32BE") UTF32Encoding 12001 1200 00 00 FE FF (4) Unicode (UTF⁠-⁠32 ビッグ エンディアン) utf⁠-⁠32BE utf⁠-⁠32BE utf⁠-⁠32BE
Encoding​.GetEncoding("UTF⁠-⁠32LE") UTF32Encoding 12000 1200 FF FE 00 00 (4) Unicode (UTF⁠-⁠32) utf⁠-⁠32 utf⁠-⁠32 utf⁠-⁠32
Encoding​.GetEncoding("UTF⁠-⁠7N") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("UTF⁠-⁠8N") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("UTF⁠-⁠16N") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("UTF⁠-⁠16BEN") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("UTF⁠-⁠16LEN") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("UTF⁠-⁠32N") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("UTF⁠-⁠32BEN") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("UTF⁠-⁠32LEN") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("UCS⁠-⁠1") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.GetEncoding("UCS⁠-⁠2") UnicodeEncoding 1200 1200 FF FE (2) Unicode utf⁠-⁠16 utf⁠-⁠16 utf⁠-⁠16
Encoding​.GetEncoding("UCS⁠-⁠4") n/a n/a n/a n/a n/a n/a n/a n/a
Encoding​.Default DBCSCodePageEncoding 932 932 (0) 日本語 (シフト JIS) iso⁠-⁠2022⁠-⁠jp iso⁠-⁠2022⁠-⁠jp shift_jis
Encoding​.UTF7 UTF7Encoding 65000 1200 (0) Unicode (UTF⁠-⁠7) utf⁠-⁠7 utf⁠-⁠7 utf⁠-⁠7
Encoding​.UTF8 UTF8Encoding 65001 1200 EF BB BF (3) Unicode (UTF⁠-⁠8) utf⁠-⁠8 utf⁠-⁠8 utf⁠-⁠8
Encoding​.Unicode UnicodeEncoding 1200 1200 FF FE (2) Unicode utf⁠-⁠16 utf⁠-⁠16 utf⁠-⁠16
Encoding​.BigEndianUnicode UnicodeEncoding 1201 1200 FE FF (2) Unicode (Big⁠-⁠Endian) utf⁠-⁠16BE utf⁠-⁠16BE utf⁠-⁠16BE
Encoding​.UTF32 UTF32Encoding 12000 1200 FF FE 00 00 (4) Unicode (UTF⁠-⁠32) utf⁠-⁠32 utf⁠-⁠32 utf⁠-⁠32

上記の表は改行点の制御のために見せるために、

  • ZERO WIDTH SPACE (ゼロ幅スペース ​) ⇒ 改行の誘発
  • WORD JOINER (単語結合子 ⁠) ⇒ 改行の禁止
  • NO-BREAK SPACE (ノーブレークスペース  ) ⇒ pading

を一部使用しています。
(要約:コピペ注意)

検証サンプルコード

Program.cs
using System;
using System.Text;
 
public class Test {
    public static void Main() {
        Action<string, Func<Encoding>> act = delegate(string name, Func<Encoding> getEncoding) {
            string encInfo = null;
            try {
                Encoding encoding = getEncoding();
                encInfo = string.Format("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}", new Object[]{
                    encoding.GetType().Name,
                    encoding.CodePage,
                    encoding.WindowsCodePage,
                    new Func<string>(delegate () {
                        byte[] data = encoding.GetPreamble();
                        StringBuilder sb = new StringBuilder();
                        if(data == null) {
                            sb.Append("(null)");
                        } else {
                            sb.Append(BitConverter.ToString(data).Replace("-", " "));
                            sb.Append(" ");
                            sb.Append(string.Format("({0})", new object[]{data.Length}));
                        }
                        return sb.ToString();
                    })(),
                    encoding.EncodingName,
                    encoding.HeaderName,
                    encoding.BodyName,
                    encoding.WebName,
                });
            } catch(Exception e) {
                encInfo = e.Message;
                // encInfo = "*************************";
            }
            Console.WriteLine("{0} => {1}", new object[]{name, encInfo});
        };
        Action<int> acti = delegate(int cp) {
            act(string.Format("Encoding.GetEncoding({0})", new object[]{cp}), delegate() {
                return Encoding.GetEncoding(cp);
            });
        };
        Action<string> acts = delegate(string name) {
            act(string.Format("Encoding.GetEncoding(\"{0}\")", new object[]{name}), delegate() {
                return Encoding.GetEncoding(name);
            });
        };
        Action<string, Encoding> acte = delegate(string name, Encoding encoding) {
            act(string.Format("{0}", new object[]{name}), delegate() {
                return encoding;
            });
        };

        Console.WriteLine(string.Format("OS: {0}", System.Environment.OSVersion.ToString()));
        Console.WriteLine();
        acti(1252);
        acti(932);
        acti(65001);
        acts("s-jis");
        acts("shift-jis");
        acts("cp932");
        acts("ms932");
        acts("windows-31j");
        acts("utf-7");
        acts("utf-8");
        acts("utf-16");
        acts("utf-16be");
        acts("utf-16le");
        acts("utf-32");
        acts("utf-32be");
        acts("utf-32le");
        acts("utf-7n");
        acts("utf-8n");
        acts("utf-16n");
        acts("utf-16ben");
        acts("utf-16len");
        acts("utf-32n");
        acts("utf-32ben");
        acts("utf-32len");
        acts("ucs-1");
        acts("ucs-2");
        acts("ucs-4");
        acts("S-JIS");
        acts("SHIFT-JIS");
        acts("CP932");
        acts("MS932");
        acts("WINDOWS-31J");
        acts("UTF-7");
        acts("UTF-8");
        acts("UTF-16");
        acts("UTF-16BE");
        acts("UTF-16LE");
        acts("UTF-32");
        acts("UTF-32BE");
        acts("UTF-32LE");
        acts("UTF-7N");
        acts("UTF-8N");
        acts("UTF-16N");
        acts("UTF-16BEN");
        acts("UTF-16LEN");
        acts("UTF-32N");
        acts("UTF-32BEN");
        acts("UTF-32LEN");
        acts("UCS-1");
        acts("UCS-2");
        acts("UCS-4");
        acte("Encoding.Default", Encoding.Default);
        acte("Encoding.UTF7", Encoding.UTF7);
        acte("Encoding.UTF8", Encoding.UTF8);
        acte("Encoding.Unicode", Encoding.Unicode);
        acte("Encoding.BigEndianUnicode", Encoding.BigEndianUnicode);
        acte("Encoding.UTF32", Encoding.UTF32);
    }
}
windows出力例
OS: Microsoft Windows NT 6.2.9200.0

Encoding.GetEncoding(1252) => SBCSCodePageEncoding, 1252, 1252,  (0), 西ヨーロッパ言語 (Windows), Windows-1252, iso-8859-1, Windows-1252
Encoding.GetEncoding(932) => DBCSCodePageEncoding, 932, 932,  (0), 日本語 (シフト JIS), iso-2022-jp, iso-2022-jp, shift_jis
Encoding.GetEncoding(65001) => UTF8Encoding, 65001, 1200, EF BB BF (3), Unicode (UTF-8), utf-8, utf-8, utf-8
Encoding.GetEncoding("s-jis") => 's-jis' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("shift-jis") => DBCSCodePageEncoding, 932, 932,  (0), 日本語 (シフト JIS), iso-2022-jp, iso-2022-jp, shift_jis
Encoding.GetEncoding("cp932") => 'cp932' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("ms932") => 'ms932' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("windows-31j") => 'windows-31j' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("utf-7") => UTF7Encoding, 65000, 1200,  (0), Unicode (UTF-7), utf-7, utf-7, utf-7
Encoding.GetEncoding("utf-8") => UTF8Encoding, 65001, 1200, EF BB BF (3), Unicode (UTF-8), utf-8, utf-8, utf-8
Encoding.GetEncoding("utf-16") => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.GetEncoding("utf-16be") => UnicodeEncoding, 1201, 1200, FE FF (2), Unicode (Big-Endian), utf-16BE, utf-16BE, utf-16BE
Encoding.GetEncoding("utf-16le") => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.GetEncoding("utf-32") => UTF32Encoding, 12000, 1200, FF FE 00 00 (4), Unicode (UTF-32), utf-32, utf-32, utf-32
Encoding.GetEncoding("utf-32be") => UTF32Encoding, 12001, 1200, 00 00 FE FF (4), Unicode (UTF-32 ビッグ エンディアン), utf-32BE, utf-32BE, utf-32BE
Encoding.GetEncoding("utf-32le") => UTF32Encoding, 12000, 1200, FF FE 00 00 (4), Unicode (UTF-32), utf-32, utf-32, utf-32
Encoding.GetEncoding("utf-7n") => 'utf-7n' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("utf-8n") => 'utf-8n' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("utf-16n") => 'utf-16n' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("utf-16ben") => 'utf-16ben' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("utf-16len") => 'utf-16len' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("utf-32n") => 'utf-32n' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("utf-32ben") => 'utf-32ben' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("utf-32len") => 'utf-32len' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("ucs-1") => 'ucs-1' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("ucs-2") => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.GetEncoding("ucs-4") => 'ucs-4' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("S-JIS") => 'S-JIS' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("SHIFT-JIS") => DBCSCodePageEncoding, 932, 932,  (0), 日本語 (シフト JIS), iso-2022-jp, iso-2022-jp, shift_jis
Encoding.GetEncoding("CP932") => 'CP932' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("MS932") => 'MS932' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("WINDOWS-31J") => 'WINDOWS-31J' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("UTF-7") => UTF7Encoding, 65000, 1200,  (0), Unicode (UTF-7), utf-7, utf-7, utf-7
Encoding.GetEncoding("UTF-8") => UTF8Encoding, 65001, 1200, EF BB BF (3), Unicode (UTF-8), utf-8, utf-8, utf-8
Encoding.GetEncoding("UTF-16") => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.GetEncoding("UTF-16BE") => UnicodeEncoding, 1201, 1200, FE FF (2), Unicode (Big-Endian), utf-16BE, utf-16BE, utf-16BE
Encoding.GetEncoding("UTF-16LE") => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.GetEncoding("UTF-32") => UTF32Encoding, 12000, 1200, FF FE 00 00 (4), Unicode (UTF-32), utf-32, utf-32, utf-32
Encoding.GetEncoding("UTF-32BE") => UTF32Encoding, 12001, 1200, 00 00 FE FF (4), Unicode (UTF-32 ビッグ エンディアン), utf-32BE, utf-32BE, utf-32BE
Encoding.GetEncoding("UTF-32LE") => UTF32Encoding, 12000, 1200, FF FE 00 00 (4), Unicode (UTF-32), utf-32, utf-32, utf-32
Encoding.GetEncoding("UTF-7N") => 'UTF-7N' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("UTF-8N") => 'UTF-8N' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("UTF-16N") => 'UTF-16N' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("UTF-16BEN") => 'UTF-16BEN' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("UTF-16LEN") => 'UTF-16LEN' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("UTF-32N") => 'UTF-32N' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("UTF-32BEN") => 'UTF-32BEN' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("UTF-32LEN") => 'UTF-32LEN' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("UCS-1") => 'UCS-1' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
Encoding.GetEncoding("UCS-2") => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.GetEncoding("UCS-4") => 'UCS-4' はサポートされたエンコード名ではありません。カスタム エンコーディングの定義の詳細は、Encoding.RegisterProvider メソッドのドキュメントを参照してください。
パラメーター名:name
ideon出力例
OS: Unix 4.9.0.12

Encoding.GetEncoding(1252) => CP1252, 1252, 1252,  (0), Western European (Windows), Windows-1252, iso-8859-1, Windows-1252
Encoding.GetEncoding(932) => CP932, 932, 932,  (0), Japanese (Shift-JIS), iso-2022-jp, iso-2022-jp, shift_jis
Encoding.GetEncoding(65001) => UTF8Encoding, 65001, 1200, EF BB BF (3), Unicode (UTF-8), utf-8, utf-8, utf-8
Encoding.GetEncoding("s-jis") => 's-jis' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("shift-jis") => CP932, 932, 932,  (0), Japanese (Shift-JIS), iso-2022-jp, iso-2022-jp, shift_jis
Encoding.GetEncoding("cp932") => 'cp932' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("ms932") => 'ms932' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("windows-31j") => 'windows-31j' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("utf-7") => UTF7Encoding, 65000, 1200,  (0), Unicode (UTF-7), utf-7, utf-7, utf-7
Encoding.GetEncoding("utf-8") => UTF8Encoding, 65001, 1200, EF BB BF (3), Unicode (UTF-8), utf-8, utf-8, utf-8
Encoding.GetEncoding("utf-16") => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.GetEncoding("utf-16be") => UnicodeEncoding, 1201, 1200, FE FF (2), Unicode (Big-Endian), utf-16BE, utf-16BE, utf-16BE
Encoding.GetEncoding("utf-16le") => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.GetEncoding("utf-32") => UTF32Encoding, 12000, 1200, FF FE 00 00 (4), Unicode (UTF-32), utf-32, utf-32, utf-32
Encoding.GetEncoding("utf-32be") => UTF32Encoding, 12001, 1200, 00 00 FE FF (4), Unicode (UTF-32 Big-Endian), utf-32BE, utf-32BE, utf-32BE
Encoding.GetEncoding("utf-32le") => UTF32Encoding, 12000, 1200, FF FE 00 00 (4), Unicode (UTF-32), utf-32, utf-32, utf-32
Encoding.GetEncoding("utf-7n") => 'utf-7n' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("utf-8n") => 'utf-8n' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("utf-16n") => 'utf-16n' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("utf-16ben") => 'utf-16ben' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("utf-16len") => 'utf-16len' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("utf-32n") => 'utf-32n' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("utf-32ben") => 'utf-32ben' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("utf-32len") => 'utf-32len' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("ucs-1") => 'ucs-1' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("ucs-2") => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.GetEncoding("ucs-4") => 'ucs-4' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("S-JIS") => 'S-JIS' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("SHIFT-JIS") => CP932, 932, 932,  (0), Japanese (Shift-JIS), iso-2022-jp, iso-2022-jp, shift_jis
Encoding.GetEncoding("CP932") => 'CP932' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("MS932") => 'MS932' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("WINDOWS-31J") => 'WINDOWS-31J' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("UTF-7") => UTF7Encoding, 65000, 1200,  (0), Unicode (UTF-7), utf-7, utf-7, utf-7
Encoding.GetEncoding("UTF-8") => UTF8Encoding, 65001, 1200, EF BB BF (3), Unicode (UTF-8), utf-8, utf-8, utf-8
Encoding.GetEncoding("UTF-16") => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.GetEncoding("UTF-16BE") => UnicodeEncoding, 1201, 1200, FE FF (2), Unicode (Big-Endian), utf-16BE, utf-16BE, utf-16BE
Encoding.GetEncoding("UTF-16LE") => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.GetEncoding("UTF-32") => UTF32Encoding, 12000, 1200, FF FE 00 00 (4), Unicode (UTF-32), utf-32, utf-32, utf-32
Encoding.GetEncoding("UTF-32BE") => UTF32Encoding, 12001, 1200, 00 00 FE FF (4), Unicode (UTF-32 Big-Endian), utf-32BE, utf-32BE, utf-32BE
Encoding.GetEncoding("UTF-32LE") => UTF32Encoding, 12000, 1200, FF FE 00 00 (4), Unicode (UTF-32), utf-32, utf-32, utf-32
Encoding.GetEncoding("UTF-7N") => 'UTF-7N' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("UTF-8N") => 'UTF-8N' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("UTF-16N") => 'UTF-16N' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("UTF-16BEN") => 'UTF-16BEN' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("UTF-16LEN") => 'UTF-16LEN' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("UTF-32N") => 'UTF-32N' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("UTF-32BEN") => 'UTF-32BEN' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("UTF-32LEN") => 'UTF-32LEN' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("UCS-1") => 'UCS-1' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.GetEncoding("UCS-2") => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.GetEncoding("UCS-4") => 'UCS-4' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
Encoding.Default => UTF8Encoding, 65001, 1200, EF BB BF (3), Unicode (UTF-8), utf-8, utf-8, utf-8
Encoding.UTF7 => UTF7Encoding, 65000, 1200,  (0), Unicode (UTF-7), utf-7, utf-7, utf-7
Encoding.UTF8 => UTF8Encoding, 65001, 1200, EF BB BF (3), Unicode (UTF-8), utf-8, utf-8, utf-8
Encoding.Unicode => UnicodeEncoding, 1200, 1200, FF FE (2), Unicode, utf-16, utf-16, utf-16
Encoding.BigEndianUnicode => UnicodeEncoding, 1201, 1200, FE FF (2), Unicode (Big-Endian), utf-16BE, utf-16BE, utf-16BE
Encoding.UTF32 => UTF32Encoding, 12000, 1200, FF FE 00 00 (4), Unicode (UTF-32), utf-32, utf-32, utf-32

結論

一般的な表記が一応対応しており、大文字小文字も吸収してくれるので、コンソールが受け取った引き数をそのまま直接Encoding.GetEncoding()に渡しても良さそう。アプリ側で特にフィルタリングする場合、場合によってはパラメータを制限することになるので、フィルタリングする必要がなく丸投げできるのはありがたい。特に UTF-16LE UTF-16BE の表記は普通に使いたかったので。ただ、BOMの有無の吸収については悩みどころ。。。

余談

最近私がjavascriptナイズされており、無名関数まわりがあまりC#らしくない書き方になっています。
callback関数を関数の引数に取りたい即時実行関数を書きたい などの参考にもなるかもです。

また、ラムダ式 のありがたみを体感するために、あえて delegate で記述しています。
ぶっちゃけjavascript同様、タイプ数が大幅に減るわけではなく、厳密な動作の違いや可読性面の方が気になる感じです。個人的には予約語があることで関数である自己主張の高い delegate も結構良いと感じております。

尚、三項演算子 型推論宗教上の理由 で使えません。

参考

4
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?