在一次解决编码的问题过程中,发现Encoding.GetEncoding("GB2312") == Encoding.GetEncoding("GBK"),
到底哪些字符串可以用在 Encoding.GetEncoding的方法中呢?
查看源代码后发现微软没有开放相关的接口,通过反射获取了所有的字符串。

private unsafe void Exec()
        {
            Assembly assembly = typeof(CultureInfo).Assembly;
            Type encodingTableType = assembly.GetType("System.Globalization.EncodingTable");

            StringBuilder sb = new StringBuilder();
            int num = (int)encodingTableType.InvokeMember("lastEncodingItem",
               BindingFlags.GetField | BindingFlags.Static | BindingFlags.NonPublic, null, null, new object[] { }
               );
            object encodingDataPtr = encodingTableType.InvokeMember("encodingDataPtr",
               BindingFlags.GetField | BindingFlags.Static | BindingFlags.NonPublic, null, null, new object[] { }
               );
            Pointer ptr = (Pointer)encodingDataPtr;
            InternalEncodingDataItem* pointer = (InternalEncodingDataItem*)Pointer.Unbox(ptr);
            ; i <= num+; i++)
            {
                InternalEncodingDataItem item = pointer[i];
                ushort short1 = item.codePage;
                string webName = new string(pointer[i].webName);
                sb.AppendLine(pointer[i] .codePage.ToString()+ "----" + webName);
            }
       }

其中要定义一个struct,微软把结构信息也隐藏了。

internal struct InternalEncodingDataItem
    {
        [SecurityCritical]
        internal unsafe sbyte* webName;
        internal ushort codePage;
    }

在我的电脑上,对应的关系如下:
codePage----webName
437----437
20127----ANSI_X3.4-1968
20127----ANSI_X3.4-1986
28596----arabic
20127----ascii
708----ASMO-708
950----Big5
950----Big5-HKSCS
858----CCSID00858
20924----CCSID00924
1140----CCSID01140
1141----CCSID01141
1142----CCSID01142
1143----CCSID01143
1144----CCSID01144
1145----CCSID01145
1146----CCSID01146
1147----CCSID01147
1148----CCSID01148
1149----CCSID01149
936----chinese
950----cn-big5
936----CN-GB
858----CP00858
20924----CP00924
1140----CP01140
1141----CP01141
1142----CP01142
1143----CP01143
1144----CP01144
1145----CP01145
1146----CP01146
1147----CP01147
1148----CP01148
1149----CP01149
37----cp037
21025----cp1025
1026----CP1026
1256----cp1256
20273----CP273
20278----CP278
20280----CP280
20284----CP284
20285----CP285
20290----cp290
20297----cp297
20127----cp367
20420----cp420
20423----cp423
20424----cp424
437----cp437
500----CP500
50227----cp50227
28591----cp819
850----cp850
852----cp852
855----cp855
857----cp857
858----cp858
860----cp860
861----cp861
862----cp862
863----cp863
864----cp864
865----cp865
866----cp866
869----cp869
870----CP870
20871----CP871
875----cp875
20880----cp880
20905----CP905
20127----csASCII
950----csbig5
51949----csEUCKR
51932----csEUCPkdFmtJapanese
936----csGB2312
936----csGB231280
37----csIBM037
1026----csIBM1026
20273----csIBM273
20277----csIBM277
20278----csIBM278
20280----csIBM280
20284----csIBM284
20285----csIBM285
20290----csIBM290
20297----csIBM297
20420----csIBM420
20423----csIBM423
20424----csIBM424
500----csIBM500
870----csIBM870
20871----csIBM871
20880----csIBM880
20905----csIBM905
20838----csIBMThai
50221----csISO2022JP
50225----csISO2022KR
936----csISO58GB231280
28591----csISOLatin1
28592----csISOLatin2
28593----csISOLatin3
28594----csISOLatin4
28599----csISOLatin5
28605----csISOLatin9
28596----csISOLatinArabic
28595----csISOLatinCyrillic
28597----csISOLatinGreek
28598----csISOLatinHebrew
20866----csKOI8R
949----csKSC56011987
437----csPC8CodePage437
932----csShiftJIS
65000----csUnicode11UTF7
932----csWindows31J
28595----cyrillic
20106----DIN_66003
720----DOS-720
862----DOS-862
874----DOS-874
20420----ebcdic-cp-ar1
500----ebcdic-cp-be
37----ebcdic-cp-ca
500----ebcdic-cp-ch
20277----EBCDIC-CP-DK
20284----ebcdic-cp-es
20278----ebcdic-cp-fi
20297----ebcdic-cp-fr
20285----ebcdic-cp-gb
20423----ebcdic-cp-gr
20424----ebcdic-cp-he
20871----ebcdic-cp-is
20280----ebcdic-cp-it
37----ebcdic-cp-nl
20277----EBCDIC-CP-NO
870----ebcdic-cp-roece
20278----ebcdic-cp-se
20905----ebcdic-cp-tr
37----ebcdic-cp-us
37----ebcdic-cp-wt
870----ebcdic-cp-yu
20880----EBCDIC-Cyrillic
1141----ebcdic-de-273+euro
1142----ebcdic-dk-277+euro
1145----ebcdic-es-284+euro
1143----ebcdic-fi-278+euro
1147----ebcdic-fr-297+euro
1146----ebcdic-gb-285+euro
1148----ebcdic-international-500+euro
1149----ebcdic-is-871+euro
1144----ebcdic-it-280+euro
20290----EBCDIC-JP-kana
20924----ebcdic-Latin9--euro
1142----ebcdic-no-277+euro
1143----ebcdic-se-278+euro
1140----ebcdic-us-37+euro
28596----ECMA-114
28597----ECMA-118
28597----ELOT_928
51936----euc-cn
51932----euc-jp
51949----euc-kr
51932----Extended_UNIX_Code_Packed_Format_for_Japanese
54936----GB18030
936----GB2312
936----GB2312-80
936----GB231280
936----GBK
936----GB_2312-80
20106----German
28597----greek
28597----greek8
28598----hebrew
52936----hz-gb-2312
20838----IBM-Thai
858----IBM00858
20924----IBM00924
1047----IBM01047
1140----IBM01140
1141----IBM01141
1142----IBM01142
1143----IBM01143
1144----IBM01144
1145----IBM01145
1146----IBM01146
1147----IBM01147
1148----IBM01148
1149----IBM01149
37----IBM037
1026----IBM1026
20273----IBM273
20277----IBM277
20278----IBM278
20280----IBM280
20284----IBM284
20285----IBM285
20290----IBM290
20297----IBM297
20127----IBM367
20420----IBM420
20423----IBM423
20424----IBM424
437----IBM437
500----IBM500
737----ibm737
775----ibm775
28591----ibm819
850----IBM850
852----IBM852
855----IBM855
857----IBM857
860----IBM860
861----IBM861
862----IBM862
863----IBM863
864----IBM864
865----IBM865
866----IBM866
869----IBM869
870----IBM870
20871----IBM871
20880----IBM880
20905----IBM905
20105----irv
1200----ISO-10646-UCS-2
50220----iso-2022-jp
51932----iso-2022-jpeuc
50225----iso-2022-kr
50225----iso-2022-kr-7
50225----iso-2022-kr-7bit
51949----iso-2022-kr-8
51949----iso-2022-kr-8bit
28591----iso-8859-1
874----iso-8859-11
28603----iso-8859-13
28605----iso-8859-15
28592----iso-8859-2
28593----iso-8859-3
28594----iso-8859-4
28595----iso-8859-5
28596----iso-8859-6
28597----iso-8859-7
28598----iso-8859-8
28598----ISO-8859-8 Visual
38598----iso-8859-8-i
28599----iso-8859-9
28591----iso-ir-100
28592----iso-ir-101
28593----iso-ir-109
28594----iso-ir-110
28597----iso-ir-126
28596----iso-ir-127
28598----iso-ir-138
28595----iso-ir-144
28599----iso-ir-148
949----iso-ir-149
936----iso-ir-58
20127----iso-ir-6
20127----ISO646-US
28591----iso8859-1
28592----iso8859-2
20127----ISO_646.irv:1991
28591----iso_8859-1
28605----ISO_8859-15
28591----iso_8859-1:1987
28592----iso_8859-2
28592----iso_8859-2:1987
28593----ISO_8859-3
28593----ISO_8859-3:1988
28594----ISO_8859-4
28594----ISO_8859-4:1988
28595----ISO_8859-5
28595----ISO_8859-5:1988
28596----ISO_8859-6
28596----ISO_8859-6:1987
28597----ISO_8859-7
28597----ISO_8859-7:1987
28598----ISO_8859-8
28598----ISO_8859-8:1988
28599----ISO_8859-9
28599----ISO_8859-9:1989
1361----Johab
20866----koi
20866----koi8
20866----koi8-r
21866----koi8-ru
21866----koi8-u
20866----koi8r
949----korean
949----ks-c-5601
949----ks-c5601
949----KSC5601
949----KSC_5601
949----ks_c_5601
949----ks_c_5601-1987
949----ks_c_5601-1989
949----ks_c_5601_1987
28591----l1
28592----l2
28593----l3
28594----l4
28599----l5
28605----l9
28591----latin1
28592----latin2
28593----latin3
28594----latin4
28599----latin5
28605----latin9
28598----logical
10000----macintosh
932----ms_Kanji
20108----Norwegian
20108----NS_4551-1
858----PC-Multilingual-850+euro
20107----SEN_850200_B
932----shift-jis
932----shift_jis
932----sjis
20107----Swedish
874----TIS-620
1200----ucs-2
1200----unicode
65000----unicode-1-1-utf-7
65001----unicode-1-1-utf-8
65000----unicode-2-0-utf-7
65001----unicode-2-0-utf-8
1201----unicodeFFFE
20127----us
20127----us-ascii
1200----utf-16
1201----UTF-16BE
1200----UTF-16LE
12000----utf-32
12001----UTF-32BE
12000----UTF-32LE
65000----utf-7
65001----utf-8
28598----visual
1250----windows-1250
1251----windows-1251
1252----windows-1252
1253----windows-1253
1254----Windows-1254
1255----windows-1255
1256----windows-1256
1257----windows-1257
1258----windows-1258
874----windows-874
1252----x-ansi
20000----x-Chinese-CNS
20002----x-Chinese-Eten
1250----x-cp1250
1251----x-cp1251
20001----x-cp20001
20003----x-cp20003
20004----x-cp20004
20005----x-cp20005
20261----x-cp20261
20269----x-cp20269
20936----x-cp20936
20949----x-cp20949
50227----x-cp50227
20833----X-EBCDIC-KoreanExtended
51932----x-euc
51936----x-euc-cn
51932----x-euc-jp
29001----x-Europa
20105----x-IA5
20106----x-IA5-German
20108----x-IA5-Norwegian
20107----x-IA5-Swedish
57006----x-iscii-as
57003----x-iscii-be
57002----x-iscii-de
57010----x-iscii-gu
57008----x-iscii-ka
57009----x-iscii-ma
57007----x-iscii-or
57011----x-iscii-pa
57004----x-iscii-ta
57005----x-iscii-te
10004----x-mac-arabic
10029----x-mac-ce
10008----x-mac-chinesesimp
10002----x-mac-chinesetrad
10082----x-mac-croatian
10007----x-mac-cyrillic
10006----x-mac-greek
10005----x-mac-hebrew
10079----x-mac-icelandic
10001----x-mac-japanese
10003----x-mac-korean
10010----x-mac-romanian
10021----x-mac-thai
10081----x-mac-turkish
10017----x-mac-ukrainian
932----x-ms-cp932
932----x-sjis
65000----x-unicode-1-1-utf-7
65001----x-unicode-1-1-utf-8
65000----x-unicode-2-0-utf-7
65001----x-unicode-2-0-utf-8
950----x-x-big5

C#中获得机器的字符编码webName信息的更多相关文章

  1. Python中的字符串与字符编码

    本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常谈的话题,同行们都写过很多这方面的文章. ...

  2. 【转】Python中的字符串与字符编码

    [转]Python中的字符串与字符编码 本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常 ...

  3. Java应用开发中的字符集与字符编码

    事出有因 在向HttpURLConnection的输出流写入内容时,因没有设置charset,导致接收方对数据的验签不一致. URL url = new URL(requestUrl); //打开连接 ...

  4. JavaScript中进制和字符编码问题

    1.进制: JavaScript中允许使用字面量的形式声明不同进制的数字: var a = 0b10; // 2 声明一个二进制 var b = 010; // 8 八进制,严格模式下会报错 var ...

  5. latexdiff中的大坑:字符编码问题

    最近用latex写文章,要用到修订模式,于是采用latexdiff命令生成修订版pdf.这原本是一个非常简单方便的方法,却隐藏着字符编码的问题,初次用可能会遇到意想不到的问题,让人很烦,比如,生成出来 ...

  6. Python中的解决中文字符编码的问题

    python3中str默认为Unicode的编码格式 python2中str默认为bytes类型的编码格式 Unicode是一32位编码格式,不适合用来传输和存储,所以必须转换成utf-8,gbk等等 ...

  7. MySQL 修改数据表中的字段的字符编码

    1.查询 MySQL 的版本: SELECT VERSION(); 2.查询 MySQL 当前使用的字符集: SHOW VARIABLES LIKE '%character%'; 3.查询指定数据库的 ...

  8. Java中常用的字符编码-解析

    ASCII字符编码 美国信息互换标准代码,为罗马字母编制的一套编码,主要用于表达现代英语和其他西欧语言中的字符,1字节的7位表示一个字符. ISO-8859-1字符编码 ISO为西欧语言中的字符制定的 ...

  9. .NET Framework 中的字符编码

    字符是可用多种不同方式表示的抽象实体. 字符编码是一种为受支持字符集中的每个字符进行配对的系统,配对时使用的是表示该字符的某些值. 例如,摩尔斯电码是一种为罗马字母表中的每个字符进行配对的字符编码,配 ...

随机推荐

  1. Gson--Gson解析=等号出现乱码?

    GSON使用笔记(1) -- 序列化时排除字段的几种方式 --3,关于Gson解析时候特殊符号,被转义的问题,如'单引号? //Creating the JSON object, and gettin ...

  2. CentOS 7 用户怎样安装 LNMP(Nginx+PHP+MySQL)

    关于 Nginx (发音 “engine x”)这是一款免费.开源.高效的 HTTP 服务器,Nginx是以稳定著称,丰富的功能,结构简单,低资源消耗.本教程演示如何在CentOS 6.5服务器(适用 ...

  3. WCF配置

    服务端 <system.serviceModel> <services> <service name="WCF.Homedo.Service.Cache.Ser ...

  4. React Native

    可以基于 React Native使用 JavaScript 编写应用逻辑,UI 则可以保持全是原生的.这样的话就没有必要就 HTML5 的 UI 做出常见的妥协: React 引入了一种与众不同的. ...

  5. C程序与Lua脚本相互调用

    Lua脚本是一种可用于C程序开发/测试的工具,本篇介绍一下C程序与Lua脚本如何进行相互调用,更加详细的操作参见<Programing in Lua>.本文分为3个部分:1.Windows ...

  6. delphi.thread.线程循环执行体结构

    线程话题太大,又都是些坑,不知从哪方面讲起,所以,想一出是一出了. 不管怎样,我们从开始使用D,不管有没有用线程,其实它已经帮我们做了一个最完整的线程执行处理:Application.Run. 这行A ...

  7. Python体验(10)-图形界面之计算器

    import wx class Form(wx.Frame): def __init__( self, parent, id, title ): wx.Frame.__init__(self,pare ...

  8. Javascript猜数字游戏

    <!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...

  9. ios 自定义键盘

    由于项目需要,需要自定义键盘.ios系统键盘会缓存键盘输入,并保存在系统目录下的文件里,并且是明文存储,存在帐号密码泄漏风险.在别人代码基础上修改了下,美化了下界面,去掉了字符输入,加了点击特效,截图 ...

  10. 这些年正Android - 大学

     还记得,第一次看见小周是在大一的操场上. 她正向教学楼站着,一身白配粉的休闲上衣搭配湖蓝色的牛仔裤,穿着一双很平凡的凉鞋,手里拿着当年的Nokia 3110c,皙清的手指,素颜的站着不言不笑.现在回 ...