summaryrefslogtreecommitdiff
path: root/src/classlibnative/nls/encodingdata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/classlibnative/nls/encodingdata.cpp')
-rw-r--r--src/classlibnative/nls/encodingdata.cpp682
1 files changed, 682 insertions, 0 deletions
diff --git a/src/classlibnative/nls/encodingdata.cpp b/src/classlibnative/nls/encodingdata.cpp
new file mode 100644
index 0000000000..bf5c73fd63
--- /dev/null
+++ b/src/classlibnative/nls/encodingdata.cpp
@@ -0,0 +1,682 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+#include "common.h"
+
+#include <mlang.h>
+
+#include "nlsinfo.h"
+
+//
+// Encoding data tables
+//
+
+//
+// Index an encoding name into an codepage in CodePageDataTable.
+//
+// Please KEEP this table SORTED ALPHABETICALLY! We do a binary search on this array.
+const EncodingDataItem COMNlsInfo::EncodingDataTable[] = {
+#ifdef FEATURE_CORECLR
+ // encoding name, codepage.
+ {"ANSI_X3.4-1968", 20127 },
+ {"ANSI_X3.4-1986", 20127 },
+ {"ascii", 20127 },
+ {"cp367", 20127 },
+ {"cp819", 28591 },
+ {"csASCII", 20127 },
+ {"csISOLatin1", 28591 },
+ {"csUnicode11UTF7", 65000 },
+ {"IBM367", 20127 },
+ {"ibm819", 28591 },
+ {"ISO-10646-UCS-2", 1200 },
+ {"iso-8859-1", 28591 },
+ {"iso-ir-100", 28591 },
+ {"iso-ir-6", 20127 },
+ {"ISO646-US", 20127 },
+ {"iso8859-1", 28591 },
+ {"ISO_646.irv:1991", 20127 },
+ {"iso_8859-1", 28591 },
+ {"iso_8859-1:1987", 28591 },
+ {"l1", 28591 },
+ {"latin1", 28591 },
+ {"ucs-2", 1200 },
+ {"unicode", 1200},
+ {"unicode-1-1-utf-7", 65000 },
+ {"unicode-1-1-utf-8", 65001 },
+ {"unicode-2-0-utf-7", 65000 },
+ {"unicode-2-0-utf-8", 65001 },
+ // People get confused about the FFFE here. We can't change this because it'd break existing apps.
+ // This has been this way for a long time, including in Mlang.
+ {"unicodeFFFE", 1201}, // Big Endian, BOM seems backwards, think of the BOM in little endian order.
+ {"us", 20127 },
+ {"us-ascii", 20127 },
+ {"utf-16", 1200 },
+ {"UTF-16BE", 1201},
+ {"UTF-16LE", 1200},
+ {"utf-32", 12000 },
+ {"UTF-32BE", 12001 },
+ {"UTF-32LE", 12000 },
+ {"utf-7", 65000 },
+ {"utf-8", 65001 },
+ {"x-unicode-1-1-utf-7", 65000 },
+ {"x-unicode-1-1-utf-8", 65001 },
+ {"x-unicode-2-0-utf-7", 65000 },
+ {"x-unicode-2-0-utf-8", 65001 },
+#else
+ // Total Items: 455
+// encoding name, codepage.
+{"437", 437},
+{"ANSI_X3.4-1968", 20127},
+{"ANSI_X3.4-1986", 20127},
+// {L"_autodetect", 50932},
+// {L"_autodetect_all", 50001},
+// {L"_autodetect_kr", 50949},
+{"arabic", 28596},
+{"ascii", 20127},
+{"ASMO-708", 708},
+{"Big5", 950},
+{"Big5-HKSCS", 950},
+{"CCSID00858", 858},
+{"CCSID00924", 20924},
+{"CCSID01140", 1140},
+{"CCSID01141", 1141},
+{"CCSID01142", 1142},
+{"CCSID01143", 1143},
+{"CCSID01144", 1144},
+{"CCSID01145", 1145},
+{"CCSID01146", 1146},
+{"CCSID01147", 1147},
+{"CCSID01148", 1148},
+{"CCSID01149", 1149},
+{"chinese", 936},
+{"cn-big5", 950},
+{"CN-GB", 936},
+{"CP00858", 858},
+{"CP00924", 20924},
+{"CP01140", 1140},
+{"CP01141", 1141},
+{"CP01142", 1142},
+{"CP01143", 1143},
+{"CP01144", 1144},
+{"CP01145", 1145},
+{"CP01146", 1146},
+{"CP01147", 1147},
+{"CP01148", 1148},
+{"CP01149", 1149},
+{"cp037", 37},
+{"cp1025", 21025},
+{"CP1026", 1026},
+{"cp1256", 1256},
+{"CP273", 20273},
+{"CP278", 20278},
+{"CP280", 20280},
+{"CP284", 20284},
+{"CP285", 20285},
+{"cp290", 20290},
+{"cp297", 20297},
+{"cp367", 20127},
+{"cp420", 20420},
+{"cp423", 20423},
+{"cp424", 20424},
+{"cp437", 437},
+{"CP500", 500},
+{"cp50227", 50227},
+ //{L"cp50229", 50229},
+{"cp819", 28591},
+{"cp850", 850},
+{"cp852", 852},
+{"cp855", 855},
+{"cp857", 857},
+{"cp858", 858},
+{"cp860", 860},
+{"cp861", 861},
+{"cp862", 862},
+{"cp863", 863},
+{"cp864", 864},
+{"cp865", 865},
+{"cp866", 866},
+{"cp869", 869},
+{"CP870", 870},
+{"CP871", 20871},
+{"cp875", 875},
+{"cp880", 20880},
+{"CP905", 20905},
+//{L"cp930", 50930},
+//{L"cp933", 50933},
+//{L"cp935", 50935},
+//{L"cp937", 50937},
+//{L"cp939", 50939},
+{"csASCII", 20127},
+{"csbig5", 950},
+{"csEUCKR", 51949},
+{"csEUCPkdFmtJapanese", 51932},
+{"csGB2312", 936},
+{"csGB231280", 936},
+{"csIBM037", 37},
+{"csIBM1026", 1026},
+{"csIBM273", 20273},
+{"csIBM277", 20277},
+{"csIBM278", 20278},
+{"csIBM280", 20280},
+{"csIBM284", 20284},
+{"csIBM285", 20285},
+{"csIBM290", 20290},
+{"csIBM297", 20297},
+{"csIBM420", 20420},
+{"csIBM423", 20423},
+{"csIBM424", 20424},
+{"csIBM500", 500},
+{"csIBM870", 870},
+{"csIBM871", 20871},
+{"csIBM880", 20880},
+{"csIBM905", 20905},
+{"csIBMThai", 20838},
+{"csISO2022JP", 50221},
+{"csISO2022KR", 50225},
+{"csISO58GB231280", 936},
+{"csISOLatin1", 28591},
+{"csISOLatin2", 28592},
+{"csISOLatin3", 28593},
+{"csISOLatin4", 28594},
+{"csISOLatin5", 28599},
+{"csISOLatin9", 28605},
+{"csISOLatinArabic", 28596},
+{"csISOLatinCyrillic", 28595},
+{"csISOLatinGreek", 28597},
+{"csISOLatinHebrew", 28598},
+{"csKOI8R", 20866},
+{"csKSC56011987", 949},
+{"csPC8CodePage437", 437},
+{"csShiftJIS", 932},
+{"csUnicode11UTF7", 65000},
+{"csWindows31J", 932},
+{"cyrillic", 28595},
+{"DIN_66003", 20106},
+{"DOS-720", 720},
+{"DOS-862", 862},
+{"DOS-874", 874},
+{"ebcdic-cp-ar1", 20420},
+{"ebcdic-cp-be", 500},
+{"ebcdic-cp-ca", 37},
+{"ebcdic-cp-ch", 500},
+{"EBCDIC-CP-DK", 20277},
+{"ebcdic-cp-es", 20284},
+{"ebcdic-cp-fi", 20278},
+{"ebcdic-cp-fr", 20297},
+{"ebcdic-cp-gb", 20285},
+{"ebcdic-cp-gr", 20423},
+{"ebcdic-cp-he", 20424},
+{"ebcdic-cp-is", 20871},
+{"ebcdic-cp-it", 20280},
+{"ebcdic-cp-nl", 37},
+{"EBCDIC-CP-NO", 20277},
+{"ebcdic-cp-roece", 870},
+{"ebcdic-cp-se", 20278},
+{"ebcdic-cp-tr", 20905},
+{"ebcdic-cp-us", 37},
+{"ebcdic-cp-wt", 37},
+{"ebcdic-cp-yu", 870},
+{"EBCDIC-Cyrillic", 20880},
+{"ebcdic-de-273+euro", 1141},
+{"ebcdic-dk-277+euro", 1142},
+{"ebcdic-es-284+euro", 1145},
+{"ebcdic-fi-278+euro", 1143},
+{"ebcdic-fr-297+euro", 1147},
+{"ebcdic-gb-285+euro", 1146},
+{"ebcdic-international-500+euro", 1148},
+{"ebcdic-is-871+euro", 1149},
+{"ebcdic-it-280+euro", 1144},
+{"EBCDIC-JP-kana", 20290},
+{"ebcdic-Latin9--euro", 20924},
+{"ebcdic-no-277+euro", 1142},
+{"ebcdic-se-278+euro", 1143},
+{"ebcdic-us-37+euro", 1140},
+{"ECMA-114", 28596},
+{"ECMA-118", 28597},
+{"ELOT_928", 28597},
+{"euc-cn", 51936},
+{"euc-jp", 51932},
+{"euc-kr", 51949},
+{"Extended_UNIX_Code_Packed_Format_for_Japanese", 51932},
+{"GB18030", 54936},
+{"GB2312", 936},
+{"GB2312-80", 936},
+{"GB231280", 936},
+{"GBK", 936},
+{"GB_2312-80", 936},
+{"German", 20106},
+{"greek", 28597},
+{"greek8", 28597},
+{"hebrew", 28598},
+{"hz-gb-2312", 52936},
+{"IBM-Thai", 20838},
+{"IBM00858", 858},
+{"IBM00924", 20924},
+{"IBM01047", 1047},
+{"IBM01140", 1140},
+{"IBM01141", 1141},
+{"IBM01142", 1142},
+{"IBM01143", 1143},
+{"IBM01144", 1144},
+{"IBM01145", 1145},
+{"IBM01146", 1146},
+{"IBM01147", 1147},
+{"IBM01148", 1148},
+{"IBM01149", 1149},
+{"IBM037", 37},
+{"IBM1026", 1026},
+{"IBM273", 20273},
+{"IBM277", 20277},
+{"IBM278", 20278},
+{"IBM280", 20280},
+{"IBM284", 20284},
+{"IBM285", 20285},
+{"IBM290", 20290},
+{"IBM297", 20297},
+{"IBM367", 20127},
+{"IBM420", 20420},
+{"IBM423", 20423},
+{"IBM424", 20424},
+{"IBM437", 437},
+{"IBM500", 500},
+{"ibm737", 737},
+{"ibm775", 775},
+{"ibm819", 28591},
+{"IBM850", 850},
+{"IBM852", 852},
+{"IBM855", 855},
+{"IBM857", 857},
+{"IBM860", 860},
+{"IBM861", 861},
+{"IBM862", 862},
+{"IBM863", 863},
+{"IBM864", 864},
+{"IBM865", 865},
+{"IBM866", 866},
+{"IBM869", 869},
+{"IBM870", 870},
+{"IBM871", 20871},
+{"IBM880", 20880},
+{"IBM905", 20905},
+{"irv", 20105},
+{"ISO-10646-UCS-2", 1200},
+{"iso-2022-jp", 50220},
+{"iso-2022-jpeuc", 51932},
+{"iso-2022-kr", 50225},
+{"iso-2022-kr-7", 50225},
+{"iso-2022-kr-7bit", 50225},
+{"iso-2022-kr-8", 51949},
+{"iso-2022-kr-8bit", 51949},
+{"iso-8859-1", 28591},
+{"iso-8859-11", 874},
+{"iso-8859-13", 28603},
+{"iso-8859-15", 28605},
+{"iso-8859-2", 28592},
+{"iso-8859-3", 28593},
+{"iso-8859-4", 28594},
+{"iso-8859-5", 28595},
+{"iso-8859-6", 28596},
+{"iso-8859-7", 28597},
+{"iso-8859-8", 28598},
+{"ISO-8859-8 Visual", 28598},
+{"iso-8859-8-i", 38598},
+{"iso-8859-9", 28599},
+{"iso-ir-100", 28591},
+{"iso-ir-101", 28592},
+{"iso-ir-109", 28593},
+{"iso-ir-110", 28594},
+{"iso-ir-126", 28597},
+{"iso-ir-127", 28596},
+{"iso-ir-138", 28598},
+{"iso-ir-144", 28595},
+{"iso-ir-148", 28599},
+{"iso-ir-149", 949},
+{"iso-ir-58", 936},
+{"iso-ir-6", 20127},
+{"ISO646-US", 20127},
+{"iso8859-1", 28591},
+{"iso8859-2", 28592},
+{"ISO_646.irv:1991", 20127},
+{"iso_8859-1", 28591},
+{"ISO_8859-15", 28605},
+{"iso_8859-1:1987", 28591},
+{"iso_8859-2", 28592},
+{"iso_8859-2:1987", 28592},
+{"ISO_8859-3", 28593},
+{"ISO_8859-3:1988", 28593},
+{"ISO_8859-4", 28594},
+{"ISO_8859-4:1988", 28594},
+{"ISO_8859-5", 28595},
+{"ISO_8859-5:1988", 28595},
+{"ISO_8859-6", 28596},
+{"ISO_8859-6:1987", 28596},
+{"ISO_8859-7", 28597},
+{"ISO_8859-7:1987", 28597},
+{"ISO_8859-8", 28598},
+{"ISO_8859-8:1988", 28598},
+{"ISO_8859-9", 28599},
+{"ISO_8859-9:1989", 28599},
+{"Johab", 1361},
+{"koi", 20866},
+{"koi8", 20866},
+{"koi8-r", 20866},
+{"koi8-ru", 21866},
+{"koi8-u", 21866},
+{"koi8r", 20866},
+{"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", 949},
+{"l1", 28591},
+{"l2", 28592},
+{"l3", 28593},
+{"l4", 28594},
+{"l5", 28599},
+{"l9", 28605},
+{"latin1", 28591},
+{"latin2", 28592},
+{"latin3", 28593},
+{"latin4", 28594},
+{"latin5", 28599},
+{"latin9", 28605},
+{"logical", 28598},
+{"macintosh", 10000},
+{"ms_Kanji", 932},
+{"Norwegian", 20108},
+{"NS_4551-1", 20108},
+{"PC-Multilingual-850+euro", 858},
+{"SEN_850200_B", 20107},
+{"shift-jis", 932},
+{"shift_jis", 932},
+{"sjis", 932},
+{"Swedish", 20107},
+{"TIS-620", 874},
+{"ucs-2", 1200},
+{"unicode", 1200},
+{"unicode-1-1-utf-7", 65000},
+{"unicode-1-1-utf-8", 65001},
+{"unicode-2-0-utf-7", 65000},
+{"unicode-2-0-utf-8", 65001},
+// People get confused about the FFFE here. We can't change this because it'd break existing apps.
+// This has been this way for a long time, including in Mlang.
+{"unicodeFFFE", 1201}, // Big Endian, BOM seems backwards, think of the BOM in little endian order.
+{"us", 20127},
+{"us-ascii", 20127},
+{"utf-16", 1200},
+{"UTF-16BE", 1201},
+{"UTF-16LE", 1200},
+{"utf-32", 12000},
+{"UTF-32BE", 12001},
+{"UTF-32LE", 12000},
+{"utf-7", 65000},
+{"utf-8", 65001},
+{"visual", 28598},
+{"windows-1250", 1250},
+{"windows-1251", 1251},
+{"windows-1252", 1252},
+{"windows-1253", 1253},
+{"Windows-1254", 1254},
+{"windows-1255", 1255},
+{"windows-1256", 1256},
+{"windows-1257", 1257},
+{"windows-1258", 1258},
+{"windows-874", 874},
+{"x-ansi", 1252},
+{"x-Chinese-CNS", 20000},
+{"x-Chinese-Eten", 20002},
+{"x-cp1250", 1250},
+{"x-cp1251", 1251},
+{"x-cp20001", 20001},
+{"x-cp20003", 20003},
+{"x-cp20004", 20004},
+{"x-cp20005", 20005},
+{"x-cp20261", 20261},
+{"x-cp20269", 20269},
+{"x-cp20936", 20936},
+{"x-cp20949", 20949},
+{"x-cp50227", 50227},
+//{L"x-cp50229", 50229},
+//{L"X-EBCDIC-JapaneseAndUSCanada", 50931},
+{"X-EBCDIC-KoreanExtended", 20833},
+{"x-euc", 51932},
+{"x-euc-cn", 51936},
+{"x-euc-jp", 51932},
+{"x-Europa", 29001},
+{"x-IA5", 20105},
+{"x-IA5-German", 20106},
+{"x-IA5-Norwegian", 20108},
+{"x-IA5-Swedish", 20107},
+{"x-iscii-as", 57006},
+{"x-iscii-be", 57003},
+{"x-iscii-de", 57002},
+{"x-iscii-gu", 57010},
+{"x-iscii-ka", 57008},
+{"x-iscii-ma", 57009},
+{"x-iscii-or", 57007},
+{"x-iscii-pa", 57011},
+{"x-iscii-ta", 57004},
+{"x-iscii-te", 57005},
+{"x-mac-arabic", 10004},
+{"x-mac-ce", 10029},
+{"x-mac-chinesesimp", 10008},
+{"x-mac-chinesetrad", 10002},
+{"x-mac-croatian", 10082},
+{"x-mac-cyrillic", 10007},
+{"x-mac-greek", 10006},
+{"x-mac-hebrew", 10005},
+{"x-mac-icelandic", 10079},
+{"x-mac-japanese", 10001},
+{"x-mac-korean", 10003},
+{"x-mac-romanian", 10010},
+{"x-mac-thai", 10021},
+{"x-mac-turkish", 10081},
+{"x-mac-ukrainian", 10017},
+{"x-ms-cp932", 932},
+{"x-sjis", 932},
+{"x-unicode-1-1-utf-7", 65000},
+{"x-unicode-1-1-utf-8", 65001},
+{"x-unicode-2-0-utf-7", 65000},
+{"x-unicode-2-0-utf-8", 65001},
+{"x-x-big5", 950},
+
+#endif // FEATURE_CORECLR
+
+};
+
+const int COMNlsInfo::m_nEncodingDataTableItems =
+ sizeof(COMNlsInfo::EncodingDataTable)/sizeof(EncodingDataItem);
+
+// Working set optimization:
+// 1. code page, family code page stored as unsigned short
+// 2. if web/header/body names are the same, only web name is stored; otherwise, we store "|webname|headername|bodyname"
+// 3. Move flags before names to fill gap on 64-bit platforms
+
+#define MapCodePageDataItem(cp, fcp, names, flags) { cp, fcp, flags, names }
+//
+// Information about codepages.
+//
+const CodePageDataItem COMNlsInfo::CodePageDataTable[] = {
+
+#ifdef FEATURE_CORECLR
+
+// Total Items:
+// code page, family code page, web name, header name, body name, flags
+
+ MapCodePageDataItem( 1200, 1200, "utf-16", MIMECONTF_SAVABLE_BROWSER), // "Unicode"
+ MapCodePageDataItem( 1201, 1200, "utf-16BE", 0), // Big Endian, old FFFE BOM seems backwards, think of the BOM in little endian order.
+ MapCodePageDataItem( 12000, 1200, "utf-32", 0), // "Unicode (UTF-32)"
+ MapCodePageDataItem( 12001, 1200, "utf-32BE", 0), // "Unicode (UTF-32 Big Endian)"
+ MapCodePageDataItem( 20127, 1252, "us-ascii", MIMECONTF_MAILNEWS | MIMECONTF_SAVABLE_MAILNEWS), // "US-ASCII"
+ MapCodePageDataItem( 28591, 1252, "iso-8859-1", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Western European (ISO)"
+ MapCodePageDataItem( 65000, 1200, "utf-7", MIMECONTF_MAILNEWS | MIMECONTF_SAVABLE_MAILNEWS), // "Unicode (UTF-7)"
+ MapCodePageDataItem( 65001, 1200, "utf-8", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Unicode (UTF-8)"
+
+#else //FEATURE_CORECLR
+
+// Total Items: 146
+// code page, family code page, web name, header name, body name, flags
+
+
+ MapCodePageDataItem( 37, 1252, "IBM037", 0), // "IBM EBCDIC (US-Canada)"
+ MapCodePageDataItem( 437, 1252, "IBM437", 0), // "OEM United States"
+ MapCodePageDataItem( 500, 1252, "IBM500", 0), // "IBM EBCDIC (International)"
+ MapCodePageDataItem( 708, 1256, "ASMO-708", MIMECONTF_BROWSER | MIMECONTF_SAVABLE_BROWSER), // "Arabic (ASMO 708)"
+ MapCodePageDataItem( 720, 1256, "DOS-720", MIMECONTF_BROWSER | MIMECONTF_SAVABLE_BROWSER), // "Arabic (DOS)"
+ MapCodePageDataItem( 737, 1253, "ibm737", 0), // "Greek (DOS)"
+ MapCodePageDataItem( 775, 1257, "ibm775", 0), // "Baltic (DOS)"
+ MapCodePageDataItem( 850, 1252, "ibm850", 0), // "Western European (DOS)"
+ MapCodePageDataItem( 852, 1250, "ibm852", MIMECONTF_BROWSER | MIMECONTF_SAVABLE_BROWSER), // "Central European (DOS)"
+ MapCodePageDataItem( 855, 1252, "IBM855", 0), // "OEM Cyrillic"
+ MapCodePageDataItem( 857, 1254, "ibm857", 0), // "Turkish (DOS)"
+ MapCodePageDataItem( 858, 1252, "IBM00858", 0), // "OEM Multilingual Latin I"
+ MapCodePageDataItem( 860, 1252, "IBM860", 0), // "Portuguese (DOS)"
+ MapCodePageDataItem( 861, 1252, "ibm861", 0), // "Icelandic (DOS)"
+ MapCodePageDataItem( 862, 1255, "DOS-862", MIMECONTF_BROWSER | MIMECONTF_SAVABLE_BROWSER), // "Hebrew (DOS)"
+ MapCodePageDataItem( 863, 1252, "IBM863", 0), // "French Canadian (DOS)"
+ MapCodePageDataItem( 864, 1256, "IBM864", 0), // "Arabic (864)"
+ MapCodePageDataItem( 865, 1252, "IBM865", 0), // "Nordic (DOS)"
+ MapCodePageDataItem( 866, 1251, "cp866", MIMECONTF_BROWSER | MIMECONTF_SAVABLE_BROWSER), // "Cyrillic (DOS)"
+ MapCodePageDataItem( 869, 1253, "ibm869", 0), // "Greek, Modern (DOS)"
+ MapCodePageDataItem( 870, 1250, "IBM870", 0), // "IBM EBCDIC (Multilingual Latin-2)"
+ MapCodePageDataItem( 874, 874, "windows-874", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Thai (Windows)"
+ MapCodePageDataItem( 875, 1253, "cp875", 0), // "IBM EBCDIC (Greek Modern)"
+ MapCodePageDataItem( 932, 932, "|shift_jis|iso-2022-jp|iso-2022-jp", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Japanese (Shift-JIS)"
+ MapCodePageDataItem( 936, 936, "gb2312", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Chinese Simplified (GB2312)"
+ MapCodePageDataItem( 949, 949, "ks_c_5601-1987", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Korean"
+ MapCodePageDataItem( 950, 950, "big5", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Chinese Traditional (Big5)"
+ MapCodePageDataItem( 1026, 1254, "IBM1026", 0), // "IBM EBCDIC (Turkish Latin-5)"
+ MapCodePageDataItem( 1047, 1252, "IBM01047", 0), // "IBM Latin-1"
+ MapCodePageDataItem( 1140, 1252, "IBM01140", 0), // "IBM EBCDIC (US-Canada-Euro)"
+ MapCodePageDataItem( 1141, 1252, "IBM01141", 0), // "IBM EBCDIC (Germany-Euro)"
+ MapCodePageDataItem( 1142, 1252, "IBM01142", 0), // "IBM EBCDIC (Denmark-Norway-Euro)"
+ MapCodePageDataItem( 1143, 1252, "IBM01143", 0), // "IBM EBCDIC (Finland-Sweden-Euro)"
+ MapCodePageDataItem( 1144, 1252, "IBM01144", 0), // "IBM EBCDIC (Italy-Euro)"
+ MapCodePageDataItem( 1145, 1252, "IBM01145", 0), // "IBM EBCDIC (Spain-Euro)"
+ MapCodePageDataItem( 1146, 1252, "IBM01146", 0), // "IBM EBCDIC (UK-Euro)"
+ MapCodePageDataItem( 1147, 1252, "IBM01147", 0), // "IBM EBCDIC (France-Euro)"
+ MapCodePageDataItem( 1148, 1252, "IBM01148", 0), // "IBM EBCDIC (International-Euro)"
+ MapCodePageDataItem( 1149, 1252, "IBM01149", 0), // "IBM EBCDIC (Icelandic-Euro)"
+ MapCodePageDataItem( 1200, 1200, "utf-16", MIMECONTF_SAVABLE_BROWSER), // "Unicode"
+ MapCodePageDataItem( 1201, 1200, "utf-16BE", 0), // Big Endian, old FFFE BOM seems backwards, think of the BOM in little endian order.
+ MapCodePageDataItem( 1250, 1250, "|windows-1250|windows-1250|iso-8859-2", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Central European (Windows)"
+ MapCodePageDataItem( 1251, 1251, "|windows-1251|windows-1251|koi8-r", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Cyrillic (Windows)"
+ MapCodePageDataItem( 1252, 1252, "|Windows-1252|Windows-1252|iso-8859-1", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Western European (Windows)"
+ MapCodePageDataItem( 1253, 1253, "|windows-1253|windows-1253|iso-8859-7", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Greek (Windows)"
+ MapCodePageDataItem( 1254, 1254, "|windows-1254|windows-1254|iso-8859-9", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Turkish (Windows)"
+ MapCodePageDataItem( 1255, 1255, "windows-1255", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Hebrew (Windows)"
+ MapCodePageDataItem( 1256, 1256, "windows-1256", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Arabic (Windows)"
+ MapCodePageDataItem( 1257, 1257, "windows-1257", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Baltic (Windows)"
+ MapCodePageDataItem( 1258, 1258, "windows-1258", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Vietnamese (Windows)"
+ MapCodePageDataItem( 1361, 949, "Johab", 0), // "Korean (Johab)"
+ MapCodePageDataItem( 10000, 1252, "macintosh", 0), // "Western European (Mac)"
+ MapCodePageDataItem( 10001, 932, "x-mac-japanese", 0), // "Japanese (Mac)"
+ MapCodePageDataItem( 10002, 950, "x-mac-chinesetrad", 0), // "Chinese Traditional (Mac)"
+ MapCodePageDataItem( 10003, 949, "x-mac-korean", 0), // "Korean (Mac)"
+ MapCodePageDataItem( 10004, 1256, "x-mac-arabic", 0), // "Arabic (Mac)"
+ MapCodePageDataItem( 10005, 1255, "x-mac-hebrew", 0), // "Hebrew (Mac)"
+ MapCodePageDataItem( 10006, 1253, "x-mac-greek", 0), // "Greek (Mac)"
+ MapCodePageDataItem( 10007, 1251, "x-mac-cyrillic", 0), // "Cyrillic (Mac)"
+ MapCodePageDataItem( 10008, 936, "x-mac-chinesesimp", 0), // "Chinese Simplified (Mac)"
+ MapCodePageDataItem( 10010, 1250, "x-mac-romanian", 0), // "Romanian (Mac)"
+ MapCodePageDataItem( 10017, 1251, "x-mac-ukrainian", 0), // "Ukrainian (Mac)"
+ MapCodePageDataItem( 10021, 874, "x-mac-thai", 0), // "Thai (Mac)"
+ MapCodePageDataItem( 10029, 1250, "x-mac-ce", 0), // "Central European (Mac)"
+ MapCodePageDataItem( 10079, 1252, "x-mac-icelandic", 0), // "Icelandic (Mac)"
+ MapCodePageDataItem( 10081, 1254, "x-mac-turkish", 0), // "Turkish (Mac)"
+ MapCodePageDataItem( 10082, 1250, "x-mac-croatian", 0), // "Croatian (Mac)"
+ MapCodePageDataItem( 12000, 1200, "utf-32", 0), // "Unicode (UTF-32)"
+ MapCodePageDataItem( 12001, 1200, "utf-32BE", 0), // "Unicode (UTF-32 Big Endian)"
+ MapCodePageDataItem( 20000, 950, "x-Chinese-CNS", 0), // "Chinese Traditional (CNS)"
+ MapCodePageDataItem( 20001, 950, "x-cp20001", 0), // "TCA Taiwan"
+ MapCodePageDataItem( 20002, 950, "x-Chinese-Eten", 0), // "Chinese Traditional (Eten)"
+ MapCodePageDataItem( 20003, 950, "x-cp20003", 0), // "IBM5550 Taiwan"
+ MapCodePageDataItem( 20004, 950, "x-cp20004", 0), // "TeleText Taiwan"
+ MapCodePageDataItem( 20005, 950, "x-cp20005", 0), // "Wang Taiwan"
+ MapCodePageDataItem( 20105, 1252, "x-IA5", 0), // "Western European (IA5)"
+ MapCodePageDataItem( 20106, 1252, "x-IA5-German", 0), // "German (IA5)"
+ MapCodePageDataItem( 20107, 1252, "x-IA5-Swedish", 0), // "Swedish (IA5)"
+ MapCodePageDataItem( 20108, 1252, "x-IA5-Norwegian", 0), // "Norwegian (IA5)"
+ MapCodePageDataItem( 20127, 1252, "us-ascii", MIMECONTF_MAILNEWS | MIMECONTF_SAVABLE_MAILNEWS), // "US-ASCII"
+ MapCodePageDataItem( 20261, 1252, "x-cp20261", 0), // "T.61"
+ MapCodePageDataItem( 20269, 1252, "x-cp20269", 0), // "ISO-6937"
+ MapCodePageDataItem( 20273, 1252, "IBM273", 0), // "IBM EBCDIC (Germany)"
+ MapCodePageDataItem( 20277, 1252, "IBM277", 0), // "IBM EBCDIC (Denmark-Norway)"
+ MapCodePageDataItem( 20278, 1252, "IBM278", 0), // "IBM EBCDIC (Finland-Sweden)"
+ MapCodePageDataItem( 20280, 1252, "IBM280", 0), // "IBM EBCDIC (Italy)"
+ MapCodePageDataItem( 20284, 1252, "IBM284", 0), // "IBM EBCDIC (Spain)"
+ MapCodePageDataItem( 20285, 1252, "IBM285", 0), // "IBM EBCDIC (UK)"
+ MapCodePageDataItem( 20290, 932, "IBM290", 0), // "IBM EBCDIC (Japanese katakana)"
+ MapCodePageDataItem( 20297, 1252, "IBM297", 0), // "IBM EBCDIC (France)"
+ MapCodePageDataItem( 20420, 1256, "IBM420", 0), // "IBM EBCDIC (Arabic)"
+ MapCodePageDataItem( 20423, 1253, "IBM423", 0), // "IBM EBCDIC (Greek)"
+ MapCodePageDataItem( 20424, 1255, "IBM424", 0), // "IBM EBCDIC (Hebrew)"
+ MapCodePageDataItem( 20833, 949, "x-EBCDIC-KoreanExtended", 0), // "IBM EBCDIC (Korean Extended)"
+ MapCodePageDataItem( 20838, 874, "IBM-Thai", 0), // "IBM EBCDIC (Thai)"
+ MapCodePageDataItem( 20866, 1251, "koi8-r", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Cyrillic (KOI8-R)"
+ MapCodePageDataItem( 20871, 1252, "IBM871", 0), // "IBM EBCDIC (Icelandic)"
+ MapCodePageDataItem( 20880, 1251, "IBM880", 0), // "IBM EBCDIC (Cyrillic Russian)"
+ MapCodePageDataItem( 20905, 1254, "IBM905", 0), // "IBM EBCDIC (Turkish)"
+ MapCodePageDataItem( 20924, 1252, "IBM00924", 0), // "IBM Latin-1"
+ MapCodePageDataItem( 20932, 932, "EUC-JP", 0), // "Japanese (JIS 0208-1990 and 0212-1990)"
+ MapCodePageDataItem( 20936, 936, "x-cp20936", 0), // "Chinese Simplified (GB2312-80)"
+ MapCodePageDataItem( 20949, 949, "x-cp20949", 0), // "Korean Wansung"
+ MapCodePageDataItem( 21025, 1251, "cp1025", 0), // "IBM EBCDIC (Cyrillic Serbian-Bulgarian)"
+ MapCodePageDataItem( 21866, 1251, "koi8-u", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Cyrillic (KOI8-U)"
+ MapCodePageDataItem( 28591, 1252, "iso-8859-1", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Western European (ISO)"
+ MapCodePageDataItem( 28592, 1250, "iso-8859-2", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Central European (ISO)"
+ MapCodePageDataItem( 28593, 1254, "iso-8859-3", MIMECONTF_MAILNEWS | MIMECONTF_SAVABLE_MAILNEWS), // "Latin 3 (ISO)"
+ MapCodePageDataItem( 28594, 1257, "iso-8859-4", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Baltic (ISO)"
+ MapCodePageDataItem( 28595, 1251, "iso-8859-5", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Cyrillic (ISO)"
+ MapCodePageDataItem( 28596, 1256, "iso-8859-6", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Arabic (ISO)"
+ MapCodePageDataItem( 28597, 1253, "iso-8859-7", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Greek (ISO)"
+ MapCodePageDataItem( 28598, 1255, "iso-8859-8", MIMECONTF_BROWSER | MIMECONTF_SAVABLE_BROWSER), // "Hebrew (ISO-Visual)"
+ MapCodePageDataItem( 28599, 1254, "iso-8859-9", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Turkish (ISO)"
+ MapCodePageDataItem( 28603, 1257, "iso-8859-13", MIMECONTF_MAILNEWS | MIMECONTF_SAVABLE_MAILNEWS), // "Estonian (ISO)"
+ MapCodePageDataItem( 28605, 1252, "iso-8859-15", MIMECONTF_MAILNEWS | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Latin 9 (ISO)"
+ MapCodePageDataItem( 29001, 1252, "x-Europa", 0), // "Europa"
+ MapCodePageDataItem( 38598, 1255, "iso-8859-8-i", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Hebrew (ISO-Logical)"
+ MapCodePageDataItem( 50220, 932, "iso-2022-jp", MIMECONTF_MAILNEWS | MIMECONTF_SAVABLE_MAILNEWS), // "Japanese (JIS)"
+ MapCodePageDataItem( 50221, 932, "|csISO2022JP|iso-2022-jp|iso-2022-jp", MIMECONTF_MAILNEWS | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Japanese (JIS-Allow 1 byte Kana)"
+ MapCodePageDataItem( 50222, 932, "iso-2022-jp", 0), // "Japanese (JIS-Allow 1 byte Kana - SO/SI)"
+ MapCodePageDataItem( 50225, 949, "|iso-2022-kr|euc-kr|iso-2022-kr", MIMECONTF_MAILNEWS), // "Korean (ISO)"
+ MapCodePageDataItem( 50227, 936, "x-cp50227", 0), // "Chinese Simplified (ISO-2022)"
+//MapCodePageDataItem( 50229, 950, L"x-cp50229", L"x-cp50229", L"x-cp50229", 0}, // "Chinese Traditional (ISO-2022)"
+//MapCodePageDataItem( 50930, 932, L"cp930", L"cp930", L"cp930", 0}, // "IBM EBCDIC (Japanese and Japanese Katakana)"
+//MapCodePageDataItem( 50931, 932, L"x-EBCDIC-JapaneseAndUSCanada", L"x-EBCDIC-JapaneseAndUSCanada", L"x-EBCDIC-JapaneseAndUSCanada", 0}, // "IBM EBCDIC (Japanese and US-Canada)"
+//MapCodePageDataItem( 50933, 949, L"cp933", L"cp933", L"cp933", 0}, // "IBM EBCDIC (Korean and Korean Extended)"
+//MapCodePageDataItem( 50935, 936, L"cp935", L"cp935", L"cp935", 0}, // "IBM EBCDIC (Simplified Chinese)"
+//MapCodePageDataItem( 50937, 950, L"cp937", L"cp937", L"cp937", 0}, // "IBM EBCDIC (Traditional Chinese)"
+//MapCodePageDataItem( 50939, 932, L"cp939", L"cp939", L"cp939", 0}, // "IBM EBCDIC (Japanese and Japanese-Latin)"
+ MapCodePageDataItem( 51932, 932, "euc-jp", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Japanese (EUC)"
+ MapCodePageDataItem( 51936, 936, "EUC-CN", 0), // "Chinese Simplified (EUC)"
+ MapCodePageDataItem( 51949, 949, "euc-kr", MIMECONTF_MAILNEWS | MIMECONTF_SAVABLE_MAILNEWS), // "Korean (EUC)"
+ MapCodePageDataItem( 52936, 936, "hz-gb-2312", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Chinese Simplified (HZ)"
+ MapCodePageDataItem( 54936, 936, "GB18030", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Chinese Simplified (GB18030)"
+ MapCodePageDataItem( 57002, 57002, "x-iscii-de", 0), // "ISCII Devanagari"
+ MapCodePageDataItem( 57003, 57003, "x-iscii-be", 0), // "ISCII Bengali"
+ MapCodePageDataItem( 57004, 57004, "x-iscii-ta", 0), // "ISCII Tamil"
+ MapCodePageDataItem( 57005, 57005, "x-iscii-te", 0), // "ISCII Telugu"
+ MapCodePageDataItem( 57006, 57006, "x-iscii-as", 0), // "ISCII Assamese"
+ MapCodePageDataItem( 57007, 57007, "x-iscii-or", 0), // "ISCII Oriya"
+ MapCodePageDataItem( 57008, 57008, "x-iscii-ka", 0), // "ISCII Kannada"
+ MapCodePageDataItem( 57009, 57009, "x-iscii-ma", 0), // "ISCII Malayalam"
+ MapCodePageDataItem( 57010, 57010, "x-iscii-gu", 0), // "ISCII Gujarati"
+ MapCodePageDataItem( 57011, 57011, "x-iscii-pa", 0), // "ISCII Punjabi"
+ MapCodePageDataItem( 65000, 1200, "utf-7", MIMECONTF_MAILNEWS | MIMECONTF_SAVABLE_MAILNEWS), // "Unicode (UTF-7)"
+ MapCodePageDataItem( 65001, 1200, "utf-8", MIMECONTF_MAILNEWS | MIMECONTF_BROWSER | MIMECONTF_SAVABLE_MAILNEWS | MIMECONTF_SAVABLE_BROWSER), // "Unicode (UTF-8)"
+#endif // FEATURE_CORECLR
+
+ // End of data.
+ MapCodePageDataItem( 0, 0, NULL, 0),
+
+};
+
+const int COMNlsInfo::m_nCodePageTableItems =
+ sizeof(COMNlsInfo::CodePageDataTable)/sizeof(CodePageDataItem);
+