예제 #1
0
        // Values from the ArcPad reference guide.
        // Found here: http://downloads.esri.com/support/documentation/pad_/ArcPad_RefGuide_1105.pdf
        private static void SetupDbaseToEncodingMap()
        {
            DbaseToEncoding[0x01] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), CodePageChoice.Oem);        // DOS USA code page 437
            DbaseToEncoding[0x02] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), Encoding.GetEncoding(850)); // DOS Multilingual code page 850
            DbaseToEncoding[0x03] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), CodePageChoice.Ansi);       // Windows ANSI code page 1252
            DbaseToEncoding[0x04] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), CodePageChoice.Mac);        // Macintosh US English
            DbaseToEncoding[0x08] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1030), Encoding.GetEncoding(865)); // Danish OEM
            DbaseToEncoding[0x09] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1043), Encoding.GetEncoding(437)); // Dutch OEM
            DbaseToEncoding[0x0A] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1043), CodePageChoice.Oem);        // Dutch OEM Secondary codepage
            DbaseToEncoding[0x0B] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1035), Encoding.GetEncoding(437)); // Finnish OEM
            DbaseToEncoding[0x0D] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1036), Encoding.GetEncoding(437)); // French OEM
            DbaseToEncoding[0x0E] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1036), CodePageChoice.Oem);        // French OEM Secondary codepage
            DbaseToEncoding[0x0F] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1031), Encoding.GetEncoding(437)); // German OEM
            DbaseToEncoding[0x10] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1031), CodePageChoice.Oem);        // German OEM Secondary codepage
            DbaseToEncoding[0x11] = new CultureWithEncoding(CultureInfo.GetCultureInfo(16), Encoding.GetEncoding(437));   // Italian OEM
            DbaseToEncoding[0x12] = new CultureWithEncoding(CultureInfo.GetCultureInfo(16), CodePageChoice.Oem);          // Italian OEM Secondary codepage
            DbaseToEncoding[0x13] = new CultureWithEncoding(CultureInfo.GetCultureInfo(17), CodePageChoice.Oem);          // Japanese Shift-JIS
            DbaseToEncoding[0x14] = new CultureWithEncoding(CultureInfo.GetCultureInfo(10), CodePageChoice.Oem);          // Spanish OEM secondary codepage
            DbaseToEncoding[0x15] = new CultureWithEncoding(CultureInfo.GetCultureInfo(29), Encoding.GetEncoding(437));   // Swedish OEM
            DbaseToEncoding[0x16] = new CultureWithEncoding(CultureInfo.GetCultureInfo(29), CodePageChoice.Oem);          // Swedish OEM secondary codepage
            DbaseToEncoding[0x17] = new CultureWithEncoding(CultureInfo.GetCultureInfo(20), Encoding.GetEncoding(865));   // Norwegian OEM
            DbaseToEncoding[0x18] = new CultureWithEncoding(CultureInfo.GetCultureInfo(10), Encoding.GetEncoding(437));   // Spanish OEM
            DbaseToEncoding[0x19] = new CultureWithEncoding(CultureInfo.GetCultureInfo(2057), Encoding.GetEncoding(437)); // English OEM (Britain)
            DbaseToEncoding[0x1A] = new CultureWithEncoding(CultureInfo.GetCultureInfo(2057), CodePageChoice.Oem);        // English OEM (Britain) secondary codepage
            DbaseToEncoding[0x1B] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), CodePageChoice.Oem);        // English OEM (U.S.)
            DbaseToEncoding[0x1C] = new CultureWithEncoding(CultureInfo.GetCultureInfo(3084), Encoding.GetEncoding(863)); // French OEM (Canada)
            DbaseToEncoding[0x1D] = new CultureWithEncoding(CultureInfo.GetCultureInfo(12), CodePageChoice.Oem);          // French OEM secondary codepage
            DbaseToEncoding[0x1F] = new CultureWithEncoding(CultureInfo.GetCultureInfo(5), CodePageChoice.Oem);           // Czech OEM
            DbaseToEncoding[0x22] = new CultureWithEncoding(CultureInfo.GetCultureInfo(14), CodePageChoice.Oem);          // Hungarian OEM
            DbaseToEncoding[0x23] = new CultureWithEncoding(CultureInfo.GetCultureInfo(21), CodePageChoice.Oem);          // Polish OEM
            DbaseToEncoding[0x24] = new CultureWithEncoding(CultureInfo.GetCultureInfo(22), Encoding.GetEncoding(860));   // Portuguese OEM
            DbaseToEncoding[0x25] = new CultureWithEncoding(CultureInfo.GetCultureInfo(22), CodePageChoice.Oem);          // Portuguese OEM secondary codepage
            DbaseToEncoding[0x26] = new CultureWithEncoding(CultureInfo.GetCultureInfo(25), CodePageChoice.Oem);          // Russian OEM
            DbaseToEncoding[0x37] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), Encoding.GetEncoding(850)); // English OEM (U.S.) secondary codepage
            DbaseToEncoding[0x40] = new CultureWithEncoding(CultureInfo.GetCultureInfo(24), CodePageChoice.Oem);          // Romanian OEM
            DbaseToEncoding[0x4D] = new CultureWithEncoding(CultureInfo.GetCultureInfo(4), CodePageChoice.Oem);           // Chinese GBK (PRC)
            DbaseToEncoding[0x4E] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1042), CodePageChoice.Oem);        // Korean (ANSI/OEM)
            DbaseToEncoding[0x4F] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1028), CodePageChoice.Oem);        // Chinese Big5 (Taiwan)
            DbaseToEncoding[0x50] = new CultureWithEncoding(CultureInfo.GetCultureInfo(30), CodePageChoice.Oem);          // Thai (ANSI/OEM)
            DbaseToEncoding[0x57] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), CodePageChoice.Ansi);       // ANSI
            DbaseToEncoding[0x58] = new CultureWithEncoding(CultureInfo.InvariantCulture, CodePageChoice.Ansi);           // Western European ANSI
            DbaseToEncoding[0x59] = new CultureWithEncoding(CultureInfo.GetCultureInfo(10), CodePageChoice.Ansi);         // Spanish ANSI
            DbaseToEncoding[0x64] = new CultureWithEncoding(CultureInfo.InvariantCulture, Encoding.GetEncoding(852));     // Eastern European MS–DOS
            DbaseToEncoding[0x65] = new CultureWithEncoding(CultureInfo.GetCultureInfo(25), CodePageChoice.Oem);          // Russian MS–DOS
            DbaseToEncoding[0x66] = new CultureWithEncoding(CultureInfo.InvariantCulture, Encoding.GetEncoding(865));     // Nordic MS–DOS
            DbaseToEncoding[0x67] = new CultureWithEncoding(CultureInfo.InvariantCulture, Encoding.GetEncoding(861));     // Icelandic MS–DOS

            DbaseToEncoding[0x6B] = new CultureWithEncoding(CultureInfo.GetCultureInfo(31), CodePageChoice.Oem);          // Turkish MS–DOS
            DbaseToEncoding[0x6C] = new CultureWithEncoding(CultureInfo.GetCultureInfo(3084), Encoding.GetEncoding(863)); // French–Canadian MS–DOS
            DbaseToEncoding[0x78] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1028), CodePageChoice.Oem);        // Taiwan Big 5
            DbaseToEncoding[0x79] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1042), CodePageChoice.Oem);        // Hangul (Wansung)
            DbaseToEncoding[0x7A] = new CultureWithEncoding(CultureInfo.GetCultureInfo(2052), CodePageChoice.Oem);        // PRC GBK
            DbaseToEncoding[0x7B] = new CultureWithEncoding(CultureInfo.GetCultureInfo(17), CodePageChoice.Oem);          // Japanese Shift-JIS
            DbaseToEncoding[0x7C] = new CultureWithEncoding(CultureInfo.GetCultureInfo(30), CodePageChoice.Oem);          // Thai Windows/MS–DOS
            DbaseToEncoding[0x7D] = new CultureWithEncoding(CultureInfo.GetCultureInfo(13), CodePageChoice.Ansi);         // Hebrew Windows
            DbaseToEncoding[0x7E] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1), CodePageChoice.Ansi);          // Arabic Windows
            DbaseToEncoding[0x86] = new CultureWithEncoding(CultureInfo.GetCultureInfo(8), CodePageChoice.Oem);           // Greek OEM
            DbaseToEncoding[0x87] = new CultureWithEncoding(CultureInfo.GetCultureInfo(27), CodePageChoice.Oem);          // Slovenian OEM
            DbaseToEncoding[0x88] = new CultureWithEncoding(CultureInfo.GetCultureInfo(31), CodePageChoice.Oem);          // Turkish OEM
            DbaseToEncoding[0xC8] = new CultureWithEncoding(CultureInfo.InvariantCulture, Encoding.GetEncoding(1250));    // Eastern European Windows
            DbaseToEncoding[0xC9] = new CultureWithEncoding(CultureInfo.GetCultureInfo(25), CodePageChoice.Ansi);         // Russian Windows
            DbaseToEncoding[0xCA] = new CultureWithEncoding(CultureInfo.GetCultureInfo(31), CodePageChoice.Ansi);         // Turkish Windows
            DbaseToEncoding[0xCB] = new CultureWithEncoding(CultureInfo.GetCultureInfo(8), CodePageChoice.Ansi);          // Greek Windows
            DbaseToEncoding[0xCC] = new CultureWithEncoding(CultureInfo.InvariantCulture, Encoding.GetEncoding(1257));    // Baltic Windows

            if (!Mono.IsRunningOnMono())
            {
                DbaseToEncoding[0x6A] = new CultureWithEncoding(CultureInfo.GetCultureInfo(8), CodePageChoice.Oem);         // Greek MS–DOS (437G) -m
                DbaseToEncoding[0x96] = new CultureWithEncoding(CultureInfo.GetCultureInfo(25), CodePageChoice.Mac);        // Russian Macintosh -m
                DbaseToEncoding[0x97] = new CultureWithEncoding(CultureInfo.InvariantCulture, Encoding.GetEncoding(10029)); // Eastern European Macintosh -m
                DbaseToEncoding[0x98] = new CultureWithEncoding(CultureInfo.GetCultureInfo(8), CodePageChoice.Mac);         // Greek Macintosh -m
            }
        }
		// Values from the ArcPad reference guide.
		// Found here: http://downloads.esri.com/support/documentation/pad_/ArcPad_RefGuide_1105.pdf
        private static void setupDbaseToEncodingMap()
        {
#if !CFBuild
            _dbaseToEncoding[0x01] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), CodePageChoice.Oem); //DOS USA code page 437 
            _dbaseToEncoding[0x02] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), Encoding.GetEncoding(850)); // DOS Multilingual code page 850 
            _dbaseToEncoding[0x03] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), CodePageChoice.Ansi); // Windows ANSI code page 1252 
            _dbaseToEncoding[0x04] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), CodePageChoice.Mac); // Macintosh US English 
            _dbaseToEncoding[0x08] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1030), Encoding.GetEncoding(865)); // Danish OEM
            _dbaseToEncoding[0x09] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1043), Encoding.GetEncoding(437)); // Dutch OEM
            _dbaseToEncoding[0x0A] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1043), CodePageChoice.Oem); // Dutch OEM Secondary codepage
            _dbaseToEncoding[0x0B] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1035), Encoding.GetEncoding(437)); // Finnish OEM
            _dbaseToEncoding[0x0D] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1036), Encoding.GetEncoding(437)); // French OEM
            _dbaseToEncoding[0x0E] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1036), CodePageChoice.Oem); // French OEM Secondary codepage
            _dbaseToEncoding[0x0F] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1031), Encoding.GetEncoding(437)); // German OEM
            _dbaseToEncoding[0x10] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1031), CodePageChoice.Oem); // German OEM Secondary codepage
            _dbaseToEncoding[0x11] = new CultureWithEncoding(CultureInfo.GetCultureInfo(16), Encoding.GetEncoding(437)); // Italian OEM
            _dbaseToEncoding[0x12] = new CultureWithEncoding(CultureInfo.GetCultureInfo(16), CodePageChoice.Oem); // Italian OEM Secondary codepage
            _dbaseToEncoding[0x13] = new CultureWithEncoding(CultureInfo.GetCultureInfo(17), CodePageChoice.Oem); // Japanese Shift-JIS
            _dbaseToEncoding[0x14] = new CultureWithEncoding(CultureInfo.GetCultureInfo(10), CodePageChoice.Oem); // Spanish OEM secondary codepage
            _dbaseToEncoding[0x15] = new CultureWithEncoding(CultureInfo.GetCultureInfo(29), Encoding.GetEncoding(437)); // Swedish OEM
            _dbaseToEncoding[0x16] = new CultureWithEncoding(CultureInfo.GetCultureInfo(29), CodePageChoice.Oem); // Swedish OEM secondary codepage
            _dbaseToEncoding[0x17] = new CultureWithEncoding(CultureInfo.GetCultureInfo(20), Encoding.GetEncoding(865)); // Norwegian OEM
            _dbaseToEncoding[0x18] = new CultureWithEncoding(CultureInfo.GetCultureInfo(10), Encoding.GetEncoding(437)); // Spanish OEM
            _dbaseToEncoding[0x19] = new CultureWithEncoding(CultureInfo.GetCultureInfo(2057), Encoding.GetEncoding(437)); // English OEM (Britain)
            _dbaseToEncoding[0x1A] = new CultureWithEncoding(CultureInfo.GetCultureInfo(2057), CodePageChoice.Oem); // English OEM (Britain) secondary codepage
            _dbaseToEncoding[0x1B] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), CodePageChoice.Oem); // English OEM (U.S.)
            _dbaseToEncoding[0x1C] = new CultureWithEncoding(CultureInfo.GetCultureInfo(3084), Encoding.GetEncoding(863)); // French OEM (Canada)
            _dbaseToEncoding[0x1D] = new CultureWithEncoding(CultureInfo.GetCultureInfo(12), CodePageChoice.Oem); // French OEM secondary codepage
            _dbaseToEncoding[0x1F] = new CultureWithEncoding(CultureInfo.GetCultureInfo(5), CodePageChoice.Oem); // Czech OEM
            _dbaseToEncoding[0x22] = new CultureWithEncoding(CultureInfo.GetCultureInfo(14), CodePageChoice.Oem); // Hungarian OEM
            _dbaseToEncoding[0x23] = new CultureWithEncoding(CultureInfo.GetCultureInfo(21), CodePageChoice.Oem); // Polish OEM
            _dbaseToEncoding[0x24] = new CultureWithEncoding(CultureInfo.GetCultureInfo(22), Encoding.GetEncoding(860)); // Portuguese OEM
            _dbaseToEncoding[0x25] = new CultureWithEncoding(CultureInfo.GetCultureInfo(22), CodePageChoice.Oem); // Portuguese OEM secondary codepage
            _dbaseToEncoding[0x26] = new CultureWithEncoding(CultureInfo.GetCultureInfo(25), CodePageChoice.Oem); // Russian OEM
            _dbaseToEncoding[0x37] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), Encoding.GetEncoding(850)); // English OEM (U.S.) secondary codepage
            _dbaseToEncoding[0x40] = new CultureWithEncoding(CultureInfo.GetCultureInfo(24), CodePageChoice.Oem); // Romanian OEM
            _dbaseToEncoding[0x4D] = new CultureWithEncoding(CultureInfo.GetCultureInfo(4), CodePageChoice.Oem); // Chinese GBK (PRC)
            _dbaseToEncoding[0x4E] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1042), CodePageChoice.Oem); // Korean (ANSI/OEM)
            _dbaseToEncoding[0x4F] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1028), CodePageChoice.Oem); // Chinese Big5 (Taiwan)
            _dbaseToEncoding[0x50] = new CultureWithEncoding(CultureInfo.GetCultureInfo(30), CodePageChoice.Oem); // Thai (ANSI/OEM)
            _dbaseToEncoding[0x57] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1033), CodePageChoice.Ansi); // ANSI
            _dbaseToEncoding[0x58] = new CultureWithEncoding(CultureInfo.InvariantCulture, CodePageChoice.Ansi); // Western European ANSI
            _dbaseToEncoding[0x59] = new CultureWithEncoding(CultureInfo.GetCultureInfo(10), CodePageChoice.Ansi); // Spanish ANSI
            _dbaseToEncoding[0x64] = new CultureWithEncoding(CultureInfo.InvariantCulture, Encoding.GetEncoding(852)); // Eastern European MS–DOS
            _dbaseToEncoding[0x65] = new CultureWithEncoding(CultureInfo.GetCultureInfo(25), CodePageChoice.Oem); // Russian MS–DOS
            _dbaseToEncoding[0x66] = new CultureWithEncoding(CultureInfo.InvariantCulture, Encoding.GetEncoding(865)); // Nordic MS–DOS
            _dbaseToEncoding[0x67] = new CultureWithEncoding(CultureInfo.InvariantCulture, Encoding.GetEncoding(861)); // Icelandic MS–DOS
            //_dbaseToEncoding[0x68] = Encoding.GetEncoding(895); // Kamenicky (Czech) MS-DOS 
            //_dbaseToEncoding[0x69] = Encoding.GetEncoding(620); // Mazovia (Polish) MS-DOS 
            _dbaseToEncoding[0x6A] = new CultureWithEncoding(CultureInfo.GetCultureInfo(8), CodePageChoice.Oem); // Greek MS–DOS (437G)
            _dbaseToEncoding[0x6B] = new CultureWithEncoding(CultureInfo.GetCultureInfo(31), CodePageChoice.Oem); // Turkish MS–DOS
            _dbaseToEncoding[0x6C] = new CultureWithEncoding(CultureInfo.GetCultureInfo(3084), Encoding.GetEncoding(863)); // French–Canadian MS–DOS
            _dbaseToEncoding[0x78] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1028), CodePageChoice.Oem); // Taiwan Big 5
            _dbaseToEncoding[0x79] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1042), CodePageChoice.Oem); // Hangul (Wansung)
            _dbaseToEncoding[0x7A] = new CultureWithEncoding(CultureInfo.GetCultureInfo(2052), CodePageChoice.Oem); // PRC GBK
            _dbaseToEncoding[0x7B] = new CultureWithEncoding(CultureInfo.GetCultureInfo(17), CodePageChoice.Oem); // Japanese Shift-JIS
            _dbaseToEncoding[0x7C] = new CultureWithEncoding(CultureInfo.GetCultureInfo(30), CodePageChoice.Oem); // Thai Windows/MS–DOS
            _dbaseToEncoding[0x7D] = new CultureWithEncoding(CultureInfo.GetCultureInfo(13), CodePageChoice.Ansi); // Hebrew Windows 
            _dbaseToEncoding[0x7E] = new CultureWithEncoding(CultureInfo.GetCultureInfo(1), CodePageChoice.Ansi); // Arabic Windows 
            _dbaseToEncoding[0x86] = new CultureWithEncoding(CultureInfo.GetCultureInfo(8), CodePageChoice.Oem); // Greek OEM
            _dbaseToEncoding[0x87] = new CultureWithEncoding(CultureInfo.GetCultureInfo(27), CodePageChoice.Oem); // Slovenian OEM
            _dbaseToEncoding[0x88] = new CultureWithEncoding(CultureInfo.GetCultureInfo(31), CodePageChoice.Oem); // Turkish OEM
            _dbaseToEncoding[0x96] = new CultureWithEncoding(CultureInfo.GetCultureInfo(25), CodePageChoice.Mac); // Russian Macintosh 
            _dbaseToEncoding[0x97] = new CultureWithEncoding(CultureInfo.InvariantCulture, Encoding.GetEncoding(10029)); // Eastern European Macintosh 
            _dbaseToEncoding[0x98] = new CultureWithEncoding(CultureInfo.GetCultureInfo(8), CodePageChoice.Mac); // Greek Macintosh 
            _dbaseToEncoding[0xC8] = new CultureWithEncoding(CultureInfo.InvariantCulture, Encoding.GetEncoding(1250)); // Eastern European Windows
            _dbaseToEncoding[0xC9] = new CultureWithEncoding(CultureInfo.GetCultureInfo(25), CodePageChoice.Ansi); // Russian Windows
            _dbaseToEncoding[0xCA] = new CultureWithEncoding(CultureInfo.GetCultureInfo(31), CodePageChoice.Ansi); // Turkish Windows
            _dbaseToEncoding[0xCB] = new CultureWithEncoding(CultureInfo.GetCultureInfo(8), CodePageChoice.Ansi); // Greek Windows
            _dbaseToEncoding[0xCC] = new CultureWithEncoding(CultureInfo.InvariantCulture, Encoding.GetEncoding(1257)); // Baltic Windows
#endif
        }