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

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

# 要約
* WebNameでの指定
  * https://docs.microsoft.com/ja-jp/dotnet/api/system.text.encoding.getencoding?view=netframework-4.5#System_Text_Encoding_GetEncoding_System_String_ 
* **Case-insensitive**
* ``UTF-8LE`` ``UTF-8BE``  は定義されていない。(当たり前)
* `Encoding.Unicode` ``UTF-16`` ``UTF-16LE`` ``UCS-2`` は等価。
* `Encoding.UTF32 ` ``UTF-32`` ``UTF-32LE`` は等価。
* ``UCS-1`` ``UCS-4`` は定義されていないが、 ``UCS-2`` は定義されている。:astonished:
* BOM無しの表記は定義されていない。
  * `UTF-8N` `UTF-16N` `UTF-32N` などは、日本固有のローカルルルルルールのため定義されていない。
* UNICODE系は基本BOMあり。
  * ただし、 `UTF-7` にはBOMは存在しない。
  * BOM無しを作る場合は個別のクラスで new する必要がある。
      * ~~UTF-7 ⇒ ``new UTF7Encoding();``   
        [UTF7Encoding コンストラクター (System.Text) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.text.utf7encoding.-ctor?view=netframework-4.5#System_Text_UTF7Encoding__ctor)~~~~
      * UTF-8 ⇒ ``new UTF8Encoding(bool encoderShouldEmitUTF8Identifier);``  
        [UTF8Encoding コンストラクター (System.Text) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.text.utf8encoding.-ctor?view=netframework-4.5#System_Text_UTF8Encoding__ctor_System_Boolean_)  
        ``encoderShouldEmitUTF8Identifier`` が ``false`` でBOMなし
      * UTF-16 ⇒ ``new UnicodeEncoding(bool bigEndian, bool byteOrderMark);``  
        [UnicodeEncoding コンストラクター (System.Text) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.text.unicodeencoding.-ctor?view=netframework-4.5#System_Text_UnicodeEncoding__ctor_System_Boolean_System_Boolean_)  
        ``byteOrderMark`` が ``false`` でBOMなし
      * UTF-32⇒ ``new UTF32Encoding(bool bigEndian, bool byteOrderMark);``  
        [UTF32Encoding コンストラクター (System.Text) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.text.utf32encoding.-ctor?view=netframework-4.5#System_Text_UTF32Encoding__ctor_System_Boolean_System_Boolean_)  
        ``byteOrderMark`` が ``false`` でBOMなし
* UNICODEに限らず、BOMなしの場合は ``Encoding.GetPreamble()`` は **要素数0のbyte配列** を返す。  
  (UNICODEに限らず、**null** はない。)。
* ``Encoding.Default`` はOSのシステム文字コード。
  * CLRのEncodingではない。
  * 日本語版Windowsだと **Shit-JIS** 。
  * 欧米版Windowsだと **Windows-1252** 。
  * 最近のLinuxやmacだと **UTF-8** (予想)。
* ``S-JIS`` は定義されていない。
* ``CP932`` ``MS932`` ``WINDOWS-31J``  は定義されていない。 (当たり前)

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


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

* ZERO WIDTH SPACE (ゼロ幅スペース &amp;#8203;) ⇒ 改行の誘発
* WORD JOINER (単語結合子 &amp;#8288;) ⇒ 改行の禁止
* NO-BREAK SPACE (ノーブレークスペース &amp;#8239;) ⇒ pading

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

# 検証サンプルコード
* ideone  
https://ideone.com/4BFRRD
* paiza.io  
https://paiza.io/projects/Xds0bpM84aH1IiP5fQUzXA

```cs: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);
    }
}
```

```text: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
```

```text: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`` も結構良いと感じております。

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

# 参考
* Encoding.GetEncoding メソッド (System.Text) | Microsoft Docs
  https://docs.microsoft.com/ja-jp/dotnet/api/system.text.encoding.getencoding?view=netframework-4.5

* Encoding.WebName プロパティ (System.Text) | Microsoft Docs
  https://docs.microsoft.com/ja-jp/dotnet/api/system.text.encoding.webname?view=netframework-4.5#System_Text_Encoding_WebName

* EncodingInfo.GetEncoding メソッド (System.Text) | Microsoft Docs
  https://docs.microsoft.com/ja-jp/dotnet/api/system.text.encodinginfo.getencoding?view=netframework-4.5

* ISO/IEC 10646#文字符号化方式 - Wikipedia
  https://ja.wikipedia.org/wiki/ISO/IEC_10646#%E6%96%87%E5%AD%97%E7%AC%A6%E5%8F%B7%E5%8C%96%E6%96%B9%E5%BC%8F