在一次解决编码的问题过程中,发现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. [综] Latent Dirichlet Allocation(LDA)主题模型算法

    多项分布 http://szjc.math168.com/book/ebookdetail.aspx?cateid=1&&sectionid=983 二项分布和多项分布 http:// ...

  2. j技术方案

    采用.net4.0作为基础技术平台,原来是采用.net4.5的,但是后来发现.net4.5不支持Windows Server2003,所以又降为.net4.0. 1.asp.net mvc 4.0 用 ...

  3. HoloLens模拟器仿真器与文档现已向开发者们开放

    HoloLens仿真器与文档现已向开发者们开放 直接上链接吧:http://mt.sohu.com/20160301/n438961462.shtml

  4. MyBatis的动态SQL详解

    MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑,本文详解mybatis的动态sql,需要的朋友可以参考下 MyBatis 的一个强大的特性之一通常是它 ...

  5. sql查询工程结算分包款转出

    总一 借工程结算负数 贷工程结算对冲问题 oralce使用聚合函数wmsys.wm_concat字段显示 clob :应该是,10.2.0.4以前,是varchar2,10.2.0.5开始,是CLOB ...

  6. Java创建WebService服务及客户端实现(转)

    简介 WebService是一种服务的提供方式,通过WebService,不同应用间相互间调用变的很方便,网络上有很多常用的WebService服务,如:http://developer.51cto. ...

  7. Hyper-v之利用差异磁盘快速创建多个虚拟机

    在新建Hyper-v磁盘的时候 有3种选项 其中分别是 固定大小 动态扩展 和 差异(differencing,个人习惯叫 差分) 其中 固定大小是新建的时候 Hyper-v创建一个设置大小值的文件, ...

  8. 给Hi3518e的Uboot添加UDP广播收发功能

    基于个人兴趣,决定实现一个和方案公司提供的uboot收发广播的功能.记录笔记如下. SDK版本:Hi3518E_V100R001C01SPC081 1. 由于我手头的板子的Phy是RMII模式,因此先 ...

  9. SQLSERVER分页查询

    转:http://blog.csdn.net/qiaqia609/article/details/41445233   Sqlserver数据库分页查询一直是Sqlserver的短板,   第一种方案 ...

  10. 学习indy组件之一idhttp的使用方法

    登录 注册 百度首页 新闻 网页 贴吧 知道 音乐 图片 视频 地图 百科 文库 经验 搜索答案我要提问 首页 分类 公社 知道行家 问医生 高质量问答 经验 个人中心手机知道开放平台   关于del ...