// --------------------------------------------------------------------------- // - cloc.hxx - // - standard system library - c localization platform function definition - // --------------------------------------------------------------------------- // - This program is free software; you can redistribute it and/or modify - // - it provided that this copyright notice is kept intact. - // - - // - This program is distributed in the hope that it will be useful, but - // - without any warranty; without even the implied warranty of - // - merchantability or fitness for a particular purpose. In no event shall - // - the copyright holder be liable for any direct, indirect, incidental or - // - special damages arising in any way out of the use of this software. - // --------------------------------------------------------------------------- // - copyright (c) 1999-2007 amaury darsch - // --------------------------------------------------------------------------- // check for unknown platform #if (AFNIX_PLATFORM_PLATID == AFNIX_PLATFORM_UNKNOWN) #error "unknown platform type" #endif // check for unknown processor #if (AFNIX_PLATFORM_PROCID == AFNIX_PROCTYPE_UNKNOWN) #error "unknown processor type" #endif #include namespace afnix { // ISO-8859-01 transcoding table static const t_quad ISO_8859_01_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x000000A1, // INVERTED EXCLAMATION MARK 0x000000A2, // CENT SIGN 0x000000A3, // POUND SIGN 0x000000A4, // CURRENCY SIGN 0x000000A5, // YEN SIGN 0x000000A6, // BROKEN BAR 0x000000A7, // SECTION SIGN 0x000000A8, // DIAERESIS 0x000000A9, // COPYRIGHT SIGN 0x000000AA, // FEMININE ORDINAL INDICATOR 0x000000AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0x000000AC, // NOT SIGN 0x000000AD, // SOFT HYPHEN 0x000000AE, // REGISTERED SIGN 0x000000AF, // MACRON 0x000000B0, // DEGREE SIGN 0x000000B1, // PLUS-MINUS SIGN 0x000000B2, // SUPERSCRIPT TWO 0x000000B3, // SUPERSCRIPT THREE 0x000000B4, // ACUTE ACCENT 0x000000B5, // MICRO SIGN 0x000000B6, // PILCROW SIGN 0x000000B7, // MIDDLE DOT 0x000000B8, // CEDILLA 0x000000B9, // SUPERSCRIPT ONE 0x000000BA, // MASCULINE ORDINAL INDICATOR 0x000000BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0x000000BC, // VULGAR FRACTION ONE QUARTER 0x000000BD, // VULGAR FRACTION ONE HALF 0x000000BE, // VULGAR FRACTION THREE QUARTERS 0x000000BF, // INVERTED QUESTION MARK 0x000000C0, // LATIN CAPITAL LETTER A WITH GRAVE 0x000000C1, // LATIN CAPITAL LETTER A WITH ACUTE 0x000000C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0x000000C3, // LATIN CAPITAL LETTER A WITH TILDE 0x000000C4, // LATIN CAPITAL LETTER A WITH DIAERESIS 0x000000C5, // LATIN CAPITAL LETTER A WITH RING ABOVE 0x000000C6, // LATIN CAPITAL LETTER AE 0x000000C7, // LATIN CAPITAL LETTER C WITH CEDILLA 0x000000C8, // LATIN CAPITAL LETTER E WITH GRAVE 0x000000C9, // LATIN CAPITAL LETTER E WITH ACUTE 0x000000CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0x000000CB, // LATIN CAPITAL LETTER E WITH DIAERESIS 0x000000CC, // LATIN CAPITAL LETTER I WITH GRAVE 0x000000CD, // LATIN CAPITAL LETTER I WITH ACUTE 0x000000CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0x000000CF, // LATIN CAPITAL LETTER I WITH DIAERESIS 0x000000D0, // LATIN CAPITAL LETTER ETH (Icelandic) 0x000000D1, // LATIN CAPITAL LETTER N WITH TILDE 0x000000D2, // LATIN CAPITAL LETTER O WITH GRAVE 0x000000D3, // LATIN CAPITAL LETTER O WITH ACUTE 0x000000D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0x000000D5, // LATIN CAPITAL LETTER O WITH TILDE 0x000000D6, // LATIN CAPITAL LETTER O WITH DIAERESIS 0x000000D7, // MULTIPLICATION SIGN 0x000000D8, // LATIN CAPITAL LETTER O WITH STROKE 0x000000D9, // LATIN CAPITAL LETTER U WITH GRAVE 0x000000DA, // LATIN CAPITAL LETTER U WITH ACUTE 0x000000DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0x000000DC, // LATIN CAPITAL LETTER U WITH DIAERESIS 0x000000DD, // LATIN CAPITAL LETTER Y WITH ACUTE 0x000000DE, // LATIN CAPITAL LETTER THORN (Icelandic) 0x000000DF, // LATIN SMALL LETTER SHARP S (German) 0x000000E0, // LATIN SMALL LETTER A WITH GRAVE 0x000000E1, // LATIN SMALL LETTER A WITH ACUTE 0x000000E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX 0x000000E3, // LATIN SMALL LETTER A WITH TILDE 0x000000E4, // LATIN SMALL LETTER A WITH DIAERESIS 0x000000E5, // LATIN SMALL LETTER A WITH RING ABOVE 0x000000E6, // LATIN SMALL LETTER AE 0x000000E7, // LATIN SMALL LETTER C WITH CEDILLA 0x000000E8, // LATIN SMALL LETTER E WITH GRAVE 0x000000E9, // LATIN SMALL LETTER E WITH ACUTE 0x000000EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX 0x000000EB, // LATIN SMALL LETTER E WITH DIAERESIS 0x000000EC, // LATIN SMALL LETTER I WITH GRAVE 0x000000ED, // LATIN SMALL LETTER I WITH ACUTE 0x000000EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX 0x000000EF, // LATIN SMALL LETTER I WITH DIAERESIS 0x000000F0, // LATIN SMALL LETTER ETH (Icelandic) 0x000000F1, // LATIN SMALL LETTER N WITH TILDE 0x000000F2, // LATIN SMALL LETTER O WITH GRAVE 0x000000F3, // LATIN SMALL LETTER O WITH ACUTE 0x000000F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX 0x000000F5, // LATIN SMALL LETTER O WITH TILDE 0x000000F6, // LATIN SMALL LETTER O WITH DIAERESIS 0x000000F7, // DIVISION SIGN 0x000000F8, // LATIN SMALL LETTER O WITH STROKE 0x000000F9, // LATIN SMALL LETTER U WITH GRAVE 0x000000FA, // LATIN SMALL LETTER U WITH ACUTE 0x000000FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX 0x000000FC, // LATIN SMALL LETTER U WITH DIAERESIS 0x000000FD, // LATIN SMALL LETTER Y WITH ACUTE 0x000000FE, // LATIN SMALL LETTER THORN (Icelandic) 0x000000FF // LATIN SMALL LETTER Y WITH DIAERESIS }; // ISO-8859-02 transcoding table static const t_quad ISO_8859_02_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x00000104, // LATIN CAPITAL LETTER A WITH OGONEK 0x000002D8, // BREVE 0x00000141, // LATIN CAPITAL LETTER L WITH STROKE 0x000000A4, // CURRENCY SIGN 0x0000013D, // LATIN CAPITAL LETTER L WITH CARON 0x0000015A, // LATIN CAPITAL LETTER S WITH ACUTE 0x000000A7, // SECTION SIGN 0x000000A8, // DIAERESIS 0x00000160, // LATIN CAPITAL LETTER S WITH CARON 0x0000015E, // LATIN CAPITAL LETTER S WITH CEDILLA 0x00000164, // LATIN CAPITAL LETTER T WITH CARON 0x00000179, // LATIN CAPITAL LETTER Z WITH ACUTE 0x000000AD, // SOFT HYPHEN 0x0000017D, // LATIN CAPITAL LETTER Z WITH CARON 0x0000017B, // LATIN CAPITAL LETTER Z WITH DOT ABOVE 0x000000B0, // DEGREE SIGN 0x00000105, // LATIN SMALL LETTER A WITH OGONEK 0x000002DB, // OGONEK 0x00000142, // LATIN SMALL LETTER L WITH STROKE 0x000000B4, // ACUTE ACCENT 0x0000013E, // LATIN SMALL LETTER L WITH CARON 0x0000015B, // LATIN SMALL LETTER S WITH ACUTE 0x000002C7, // CARON 0x000000B8, // CEDILLA 0x00000161, // LATIN SMALL LETTER S WITH CARON 0x0000015F, // LATIN SMALL LETTER S WITH CEDILLA 0x00000165, // LATIN SMALL LETTER T WITH CARON 0x0000017A, // LATIN SMALL LETTER Z WITH ACUTE 0x000002DD, // DOUBLE ACUTE ACCENT 0x0000017E, // LATIN SMALL LETTER Z WITH CARON 0x0000017C, // LATIN SMALL LETTER Z WITH DOT ABOVE 0x00000154, // LATIN CAPITAL LETTER R WITH ACUTE 0x000000C1, // LATIN CAPITAL LETTER A WITH ACUTE 0x000000C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0x00000102, // LATIN CAPITAL LETTER A WITH BREVE 0x000000C4, // LATIN CAPITAL LETTER A WITH DIAERESIS 0x00000139, // LATIN CAPITAL LETTER L WITH ACUTE 0x00000106, // LATIN CAPITAL LETTER C WITH ACUTE 0x000000C7, // LATIN CAPITAL LETTER C WITH CEDILLA 0x0000010C, // LATIN CAPITAL LETTER C WITH CARON 0x000000C9, // LATIN CAPITAL LETTER E WITH ACUTE 0x00000118, // LATIN CAPITAL LETTER E WITH OGONEK 0x000000CB, // LATIN CAPITAL LETTER E WITH DIAERESIS 0x0000011A, // LATIN CAPITAL LETTER E WITH CARON 0x000000CD, // LATIN CAPITAL LETTER I WITH ACUTE 0x000000CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0x0000010E, // LATIN CAPITAL LETTER D WITH CARON 0x00000110, // LATIN CAPITAL LETTER D WITH STROKE 0x00000143, // LATIN CAPITAL LETTER N WITH ACUTE 0x00000147, // LATIN CAPITAL LETTER N WITH CARON 0x000000D3, // LATIN CAPITAL LETTER O WITH ACUTE 0x000000D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0x00000150, // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 0x000000D6, // LATIN CAPITAL LETTER O WITH DIAERESIS 0x000000D7, // MULTIPLICATION SIGN 0x00000158, // LATIN CAPITAL LETTER R WITH CARON 0x0000016E, // LATIN CAPITAL LETTER U WITH RING ABOVE 0x000000DA, // LATIN CAPITAL LETTER U WITH ACUTE 0x00000170, // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 0x000000DC, // LATIN CAPITAL LETTER U WITH DIAERESIS 0x000000DD, // LATIN CAPITAL LETTER Y WITH ACUTE 0x00000162, // LATIN CAPITAL LETTER T WITH CEDILLA 0x000000DF, // LATIN SMALL LETTER SHARP S 0x00000155, // LATIN SMALL LETTER R WITH ACUTE 0x000000E1, // LATIN SMALL LETTER A WITH ACUTE 0x000000E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX 0x00000103, // LATIN SMALL LETTER A WITH BREVE 0x000000E4, // LATIN SMALL LETTER A WITH DIAERESIS 0x0000013A, // LATIN SMALL LETTER L WITH ACUTE 0x00000107, // LATIN SMALL LETTER C WITH ACUTE 0x000000E7, // LATIN SMALL LETTER C WITH CEDILLA 0x0000010D, // LATIN SMALL LETTER C WITH CARON 0x000000E9, // LATIN SMALL LETTER E WITH ACUTE 0x00000119, // LATIN SMALL LETTER E WITH OGONEK 0x000000EB, // LATIN SMALL LETTER E WITH DIAERESIS 0x0000011B, // LATIN SMALL LETTER E WITH CARON 0x000000ED, // LATIN SMALL LETTER I WITH ACUTE 0x000000EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX 0x0000010F, // LATIN SMALL LETTER D WITH CARON 0x00000111, // LATIN SMALL LETTER D WITH STROKE 0x00000144, // LATIN SMALL LETTER N WITH ACUTE 0x00000148, // LATIN SMALL LETTER N WITH CARON 0x000000F3, // LATIN SMALL LETTER O WITH ACUTE 0x000000F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX 0x00000151, // LATIN SMALL LETTER O WITH DOUBLE ACUTE 0x000000F6, // LATIN SMALL LETTER O WITH DIAERESIS 0x000000F7, // DIVISION SIGN 0x00000159, // LATIN SMALL LETTER R WITH CARON 0x0000016F, // LATIN SMALL LETTER U WITH RING ABOVE 0x000000FA, // LATIN SMALL LETTER U WITH ACUTE 0x00000171, // LATIN SMALL LETTER U WITH DOUBLE ACUTE 0x000000FC, // LATIN SMALL LETTER U WITH DIAERESIS 0x000000FD, // LATIN SMALL LETTER Y WITH ACUTE 0x00000163, // LATIN SMALL LETTER T WITH CEDILLA 0x000002D9, // DOT ABOVE }; // ISO-8859-03 transcoding table static const t_quad ISO_8859_03_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x00000126, // LATIN CAPITAL LETTER H WITH STROKE 0x000002D8, // BREVE 0x000000A3, // POUND SIGN 0x000000A4, // CURRENCY SIGN 0xFFFFFFFF, // 0x00000124, // LATIN CAPITAL LETTER H WITH CIRCUMFLEX 0x000000A7, // SECTION SIGN 0x000000A8, // DIAERESIS 0x00000130, // LATIN CAPITAL LETTER I WITH DOT ABOVE 0x0000015E, // LATIN CAPITAL LETTER S WITH CEDILLA 0x0000011E, // LATIN CAPITAL LETTER G WITH BREVE 0x00000134, // LATIN CAPITAL LETTER J WITH CIRCUMFLEX 0x000000AD, // SOFT HYPHEN 0xFFFFFFFF, // 0x0000017B, // LATIN CAPITAL LETTER Z WITH DOT ABOVE 0x000000B0, // DEGREE SIGN 0x00000127, // LATIN SMALL LETTER H WITH STROKE 0x000000B2, // SUPERSCRIPT TWO 0x000000B3, // SUPERSCRIPT THREE 0x000000B4, // ACUTE ACCENT 0x000000B5, // MICRO SIGN 0x00000125, // LATIN SMALL LETTER H WITH CIRCUMFLEX 0x000000B7, // MIDDLE DOT 0x000000B8, // CEDILLA 0x00000131, // LATIN SMALL LETTER DOTLESS I 0x0000015F, // LATIN SMALL LETTER S WITH CEDILLA 0x0000011F, // LATIN SMALL LETTER G WITH BREVE 0x00000135, // LATIN SMALL LETTER J WITH CIRCUMFLEX 0x000000BD, // VULGAR FRACTION ONE HALF 0xFFFFFFFF, // 0x0000017C, // LATIN SMALL LETTER Z WITH DOT ABOVE 0x000000C0, // LATIN CAPITAL LETTER A WITH GRAVE 0x000000C1, // LATIN CAPITAL LETTER A WITH ACUTE 0x000000C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0xFFFFFFFF, // 0x000000C4, // LATIN CAPITAL LETTER A WITH DIAERESIS 0x0000010A, // LATIN CAPITAL LETTER C WITH DOT ABOVE 0x00000108, // LATIN CAPITAL LETTER C WITH CIRCUMFLEX 0x000000C7, // LATIN CAPITAL LETTER C WITH CEDILLA 0x000000C8, // LATIN CAPITAL LETTER E WITH GRAVE 0x000000C9, // LATIN CAPITAL LETTER E WITH ACUTE 0x000000CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0x000000CB, // LATIN CAPITAL LETTER E WITH DIAERESIS 0x000000CC, // LATIN CAPITAL LETTER I WITH GRAVE 0x000000CD, // LATIN CAPITAL LETTER I WITH ACUTE 0x000000CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0x000000CF, // LATIN CAPITAL LETTER I WITH DIAERESIS 0xFFFFFFFF, // 0x000000D1, // LATIN CAPITAL LETTER N WITH TILDE 0x000000D2, // LATIN CAPITAL LETTER O WITH GRAVE 0x000000D3, // LATIN CAPITAL LETTER O WITH ACUTE 0x000000D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0x00000120, // LATIN CAPITAL LETTER G WITH DOT ABOVE 0x000000D6, // LATIN CAPITAL LETTER O WITH DIAERESIS 0x000000D7, // MULTIPLICATION SIGN 0x0000011C, // LATIN CAPITAL LETTER G WITH CIRCUMFLEX 0x000000D9, // LATIN CAPITAL LETTER U WITH GRAVE 0x000000DA, // LATIN CAPITAL LETTER U WITH ACUTE 0x000000DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0x000000DC, // LATIN CAPITAL LETTER U WITH DIAERESIS 0x0000016C, // LATIN CAPITAL LETTER U WITH BREVE 0x0000015C, // LATIN CAPITAL LETTER S WITH CIRCUMFLEX 0x000000DF, // LATIN SMALL LETTER SHARP S 0x000000E0, // LATIN SMALL LETTER A WITH GRAVE 0x000000E1, // LATIN SMALL LETTER A WITH ACUTE 0x000000E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX 0xFFFFFFFF, // 0x000000E4, // LATIN SMALL LETTER A WITH DIAERESIS 0x0000010B, // LATIN SMALL LETTER C WITH DOT ABOVE 0x00000109, // LATIN SMALL LETTER C WITH CIRCUMFLEX 0x000000E7, // LATIN SMALL LETTER C WITH CEDILLA 0x000000E8, // LATIN SMALL LETTER E WITH GRAVE 0x000000E9, // LATIN SMALL LETTER E WITH ACUTE 0x000000EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX 0x000000EB, // LATIN SMALL LETTER E WITH DIAERESIS 0x000000EC, // LATIN SMALL LETTER I WITH GRAVE 0x000000ED, // LATIN SMALL LETTER I WITH ACUTE 0x000000EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX 0x000000EF, // LATIN SMALL LETTER I WITH DIAERESIS 0xFFFFFFFF, // 0x000000F1, // LATIN SMALL LETTER N WITH TILDE 0x000000F2, // LATIN SMALL LETTER O WITH GRAVE 0x000000F3, // LATIN SMALL LETTER O WITH ACUTE 0x000000F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX 0x00000121, // LATIN SMALL LETTER G WITH DOT ABOVE 0x000000F6, // LATIN SMALL LETTER O WITH DIAERESIS 0x000000F7, // DIVISION SIGN 0x0000011D, // LATIN SMALL LETTER G WITH CIRCUMFLEX 0x000000F9, // LATIN SMALL LETTER U WITH GRAVE 0x000000FA, // LATIN SMALL LETTER U WITH ACUTE 0x000000FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX 0x000000FC, // LATIN SMALL LETTER U WITH DIAERESIS 0x0000016D, // LATIN SMALL LETTER U WITH BREVE 0x0000015D, // LATIN SMALL LETTER S WITH CIRCUMFLEX 0x000002D9 // DOT ABOVE }; // ISO-8859-04 transcoding table static const t_quad ISO_8859_04_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x00000104, // LATIN CAPITAL LETTER A WITH OGONEK 0x00000138, // LATIN SMALL LETTER KRA 0x00000156, // LATIN CAPITAL LETTER R WITH CEDILLA 0x000000A4, // CURRENCY SIGN 0x00000128, // LATIN CAPITAL LETTER I WITH TILDE 0x0000013B, // LATIN CAPITAL LETTER L WITH CEDILLA 0x000000A7, // SECTION SIGN 0x000000A8, // DIAERESIS 0x00000160, // LATIN CAPITAL LETTER S WITH CARON 0x00000112, // LATIN CAPITAL LETTER E WITH MACRON 0x00000122, // LATIN CAPITAL LETTER G WITH CEDILLA 0x00000166, // LATIN CAPITAL LETTER T WITH STROKE 0x000000AD, // SOFT HYPHEN 0x0000017D, // LATIN CAPITAL LETTER Z WITH CARON 0x000000AF, // MACRON 0x000000B0, // DEGREE SIGN 0x00000105, // LATIN SMALL LETTER A WITH OGONEK 0x000002DB, // OGONEK 0x00000157, // LATIN SMALL LETTER R WITH CEDILLA 0x000000B4, // ACUTE ACCENT 0x00000129, // LATIN SMALL LETTER I WITH TILDE 0x0000013C, // LATIN SMALL LETTER L WITH CEDILLA 0x000002C7, // CARON 0x000000B8, // CEDILLA 0x00000161, // LATIN SMALL LETTER S WITH CARON 0x00000113, // LATIN SMALL LETTER E WITH MACRON 0x00000123, // LATIN SMALL LETTER G WITH CEDILLA 0x00000167, // LATIN SMALL LETTER T WITH STROKE 0x0000014A, // LATIN CAPITAL LETTER ENG 0x0000017E, // LATIN SMALL LETTER Z WITH CARON 0x0000014B, // LATIN SMALL LETTER ENG 0x00000100, // LATIN CAPITAL LETTER A WITH MACRON 0x000000C1, // LATIN CAPITAL LETTER A WITH ACUTE 0x000000C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0x000000C3, // LATIN CAPITAL LETTER A WITH TILDE 0x000000C4, // LATIN CAPITAL LETTER A WITH DIAERESIS 0x000000C5, // LATIN CAPITAL LETTER A WITH RING ABOVE 0x000000C6, // LATIN CAPITAL LETTER AE 0x0000012E, // LATIN CAPITAL LETTER I WITH OGONEK 0x0000010C, // LATIN CAPITAL LETTER C WITH CARON 0x000000C9, // LATIN CAPITAL LETTER E WITH ACUTE 0x00000118, // LATIN CAPITAL LETTER E WITH OGONEK 0x000000CB, // LATIN CAPITAL LETTER E WITH DIAERESIS 0x00000116, // LATIN CAPITAL LETTER E WITH DOT ABOVE 0x000000CD, // LATIN CAPITAL LETTER I WITH ACUTE 0x000000CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0x0000012A, // LATIN CAPITAL LETTER I WITH MACRON 0x00000110, // LATIN CAPITAL LETTER D WITH STROKE 0x00000145, // LATIN CAPITAL LETTER N WITH CEDILLA 0x0000014C, // LATIN CAPITAL LETTER O WITH MACRON 0x00000136, // LATIN CAPITAL LETTER K WITH CEDILLA 0x000000D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0x000000D5, // LATIN CAPITAL LETTER O WITH TILDE 0x000000D6, // LATIN CAPITAL LETTER O WITH DIAERESIS 0x000000D7, // MULTIPLICATION SIGN 0x000000D8, // LATIN CAPITAL LETTER O WITH STROKE 0x00000172, // LATIN CAPITAL LETTER U WITH OGONEK 0x000000DA, // LATIN CAPITAL LETTER U WITH ACUTE 0x000000DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0x000000DC, // LATIN CAPITAL LETTER U WITH DIAERESIS 0x00000168, // LATIN CAPITAL LETTER U WITH TILDE 0x0000016A, // LATIN CAPITAL LETTER U WITH MACRON 0x000000DF, // LATIN SMALL LETTER SHARP S 0x00000101, // LATIN SMALL LETTER A WITH MACRON 0x000000E1, // LATIN SMALL LETTER A WITH ACUTE 0x000000E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX 0x000000E3, // LATIN SMALL LETTER A WITH TILDE 0x000000E4, // LATIN SMALL LETTER A WITH DIAERESIS 0x000000E5, // LATIN SMALL LETTER A WITH RING ABOVE 0x000000E6, // LATIN SMALL LETTER AE 0x0000012F, // LATIN SMALL LETTER I WITH OGONEK 0x0000010D, // LATIN SMALL LETTER C WITH CARON 0x000000E9, // LATIN SMALL LETTER E WITH ACUTE 0x00000119, // LATIN SMALL LETTER E WITH OGONEK 0x000000EB, // LATIN SMALL LETTER E WITH DIAERESIS 0x00000117, // LATIN SMALL LETTER E WITH DOT ABOVE 0x000000ED, // LATIN SMALL LETTER I WITH ACUTE 0x000000EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX 0x0000012B, // LATIN SMALL LETTER I WITH MACRON 0x00000111, // LATIN SMALL LETTER D WITH STROKE 0x00000146, // LATIN SMALL LETTER N WITH CEDILLA 0x0000014D, // LATIN SMALL LETTER O WITH MACRON 0x00000137, // LATIN SMALL LETTER K WITH CEDILLA 0x000000F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX 0x000000F5, // LATIN SMALL LETTER O WITH TILDE 0x000000F6, // LATIN SMALL LETTER O WITH DIAERESIS 0x000000F7, // DIVISION SIGN 0x000000F8, // LATIN SMALL LETTER O WITH STROKE 0x00000173, // LATIN SMALL LETTER U WITH OGONEK 0x000000FA, // LATIN SMALL LETTER U WITH ACUTE 0x000000FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX 0x000000FC, // LATIN SMALL LETTER U WITH DIAERESIS 0x00000169, // LATIN SMALL LETTER U WITH TILDE 0x0000016B, // LATIN SMALL LETTER U WITH MACRON 0x000002D9 // DOT ABOVE }; // ISO-8859-05 transcoding table static const t_quad ISO_8859_05_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x00000401, // CYRILLIC CAPITAL LETTER IO 0x00000402, // CYRILLIC CAPITAL LETTER DJE 0x00000403, // CYRILLIC CAPITAL LETTER GJE 0x00000404, // CYRILLIC CAPITAL LETTER UKRAINIAN IE 0x00000405, // CYRILLIC CAPITAL LETTER DZE 0x00000406, // CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I 0x00000407, // CYRILLIC CAPITAL LETTER YI 0x00000408, // CYRILLIC CAPITAL LETTER JE 0x00000409, // CYRILLIC CAPITAL LETTER LJE 0x0000040A, // CYRILLIC CAPITAL LETTER NJE 0x0000040B, // CYRILLIC CAPITAL LETTER TSHE 0x0000040C, // CYRILLIC CAPITAL LETTER KJE 0x000000AD, // SOFT HYPHEN 0x0000040E, // CYRILLIC CAPITAL LETTER SHORT U 0x0000040F, // CYRILLIC CAPITAL LETTER DZHE 0x00000410, // CYRILLIC CAPITAL LETTER A 0x00000411, // CYRILLIC CAPITAL LETTER BE 0x00000412, // CYRILLIC CAPITAL LETTER VE 0x00000413, // CYRILLIC CAPITAL LETTER GHE 0x00000414, // CYRILLIC CAPITAL LETTER DE 0x00000415, // CYRILLIC CAPITAL LETTER IE 0x00000416, // CYRILLIC CAPITAL LETTER ZHE 0x00000417, // CYRILLIC CAPITAL LETTER ZE 0x00000418, // CYRILLIC CAPITAL LETTER I 0x00000419, // CYRILLIC CAPITAL LETTER SHORT I 0x0000041A, // CYRILLIC CAPITAL LETTER KA 0x0000041B, // CYRILLIC CAPITAL LETTER EL 0x0000041C, // CYRILLIC CAPITAL LETTER EM 0x0000041D, // CYRILLIC CAPITAL LETTER EN 0x0000041E, // CYRILLIC CAPITAL LETTER O 0x0000041F, // CYRILLIC CAPITAL LETTER PE 0x00000420, // CYRILLIC CAPITAL LETTER ER 0x00000421, // CYRILLIC CAPITAL LETTER ES 0x00000422, // CYRILLIC CAPITAL LETTER TE 0x00000423, // CYRILLIC CAPITAL LETTER U 0x00000424, // CYRILLIC CAPITAL LETTER EF 0x00000425, // CYRILLIC CAPITAL LETTER HA 0x00000426, // CYRILLIC CAPITAL LETTER TSE 0x00000427, // CYRILLIC CAPITAL LETTER CHE 0x00000428, // CYRILLIC CAPITAL LETTER SHA 0x00000429, // CYRILLIC CAPITAL LETTER SHCHA 0x0000042A, // CYRILLIC CAPITAL LETTER HARD SIGN 0x0000042B, // CYRILLIC CAPITAL LETTER YERU 0x0000042C, // CYRILLIC CAPITAL LETTER SOFT SIGN 0x0000042D, // CYRILLIC CAPITAL LETTER E 0x0000042E, // CYRILLIC CAPITAL LETTER YU 0x0000042F, // CYRILLIC CAPITAL LETTER YA 0x00000430, // CYRILLIC SMALL LETTER A 0x00000431, // CYRILLIC SMALL LETTER BE 0x00000432, // CYRILLIC SMALL LETTER VE 0x00000433, // CYRILLIC SMALL LETTER GHE 0x00000434, // CYRILLIC SMALL LETTER DE 0x00000435, // CYRILLIC SMALL LETTER IE 0x00000436, // CYRILLIC SMALL LETTER ZHE 0x00000437, // CYRILLIC SMALL LETTER ZE 0x00000438, // CYRILLIC SMALL LETTER I 0x00000439, // CYRILLIC SMALL LETTER SHORT I 0x0000043A, // CYRILLIC SMALL LETTER KA 0x0000043B, // CYRILLIC SMALL LETTER EL 0x0000043C, // CYRILLIC SMALL LETTER EM 0x0000043D, // CYRILLIC SMALL LETTER EN 0x0000043E, // CYRILLIC SMALL LETTER O 0x0000043F, // CYRILLIC SMALL LETTER PE 0x00000440, // CYRILLIC SMALL LETTER ER 0x00000441, // CYRILLIC SMALL LETTER ES 0x00000442, // CYRILLIC SMALL LETTER TE 0x00000443, // CYRILLIC SMALL LETTER U 0x00000444, // CYRILLIC SMALL LETTER EF 0x00000445, // CYRILLIC SMALL LETTER HA 0x00000446, // CYRILLIC SMALL LETTER TSE 0x00000447, // CYRILLIC SMALL LETTER CHE 0x00000448, // CYRILLIC SMALL LETTER SHA 0x00000449, // CYRILLIC SMALL LETTER SHCHA 0x0000044A, // CYRILLIC SMALL LETTER HARD SIGN 0x0000044B, // CYRILLIC SMALL LETTER YERU 0x0000044C, // CYRILLIC SMALL LETTER SOFT SIGN 0x0000044D, // CYRILLIC SMALL LETTER E 0x0000044E, // CYRILLIC SMALL LETTER YU 0x0000044F, // CYRILLIC SMALL LETTER YA 0x00002116, // NUMERO SIGN 0x00000451, // CYRILLIC SMALL LETTER IO 0x00000452, // CYRILLIC SMALL LETTER DJE 0x00000453, // CYRILLIC SMALL LETTER GJE 0x00000454, // CYRILLIC SMALL LETTER UKRAINIAN IE 0x00000455, // CYRILLIC SMALL LETTER DZE 0x00000456, // CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I 0x00000457, // CYRILLIC SMALL LETTER YI 0x00000458, // CYRILLIC SMALL LETTER JE 0x00000459, // CYRILLIC SMALL LETTER LJE 0x0000045A, // CYRILLIC SMALL LETTER NJE 0x0000045B, // CYRILLIC SMALL LETTER TSHE 0x0000045C, // CYRILLIC SMALL LETTER KJE 0x000000A7, // SECTION SIGN 0x0000045E, // CYRILLIC SMALL LETTER SHORT U 0x0000045F // CYRILLIC SMALL LETTER DZHE }; // ISO-8859-06 transcoding table static const t_quad ISO_8859_06_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0x000000A4, // CURRENCY SIGN 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0x0000060C, // ARABIC COMMA 0x000000AD, // SOFT HYPHEN 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0x0000061B, // ARABIC SEMICOLON 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0x0000061F, // ARABIC QUESTION MARK 0xFFFFFFFF, // 0x00000621, // ARABIC LETTER HAMZA 0x00000622, // ARABIC LETTER ALEF WITH MADDA ABOVE 0x00000623, // ARABIC LETTER ALEF WITH HAMZA ABOVE 0x00000624, // ARABIC LETTER WAW WITH HAMZA ABOVE 0x00000625, // ARABIC LETTER ALEF WITH HAMZA BELOW 0x00000626, // ARABIC LETTER YEH WITH HAMZA ABOVE 0x00000627, // ARABIC LETTER ALEF 0x00000628, // ARABIC LETTER BEH 0x00000629, // ARABIC LETTER TEH MARBUTA 0x0000062A, // ARABIC LETTER TEH 0x0000062B, // ARABIC LETTER THEH 0x0000062C, // ARABIC LETTER JEEM 0x0000062D, // ARABIC LETTER HAH 0x0000062E, // ARABIC LETTER KHAH 0x0000062F, // ARABIC LETTER DAL 0x00000630, // ARABIC LETTER THAL 0x00000631, // ARABIC LETTER REH 0x00000632, // ARABIC LETTER ZAIN 0x00000633, // ARABIC LETTER SEEN 0x00000634, // ARABIC LETTER SHEEN 0x00000635, // ARABIC LETTER SAD 0x00000636, // ARABIC LETTER DAD 0x00000637, // ARABIC LETTER TAH 0x00000638, // ARABIC LETTER ZAH 0x00000639, // ARABIC LETTER AIN 0x0000063A, // ARABIC LETTER GHAIN 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0x00000640, // ARABIC TATWEEL 0x00000641, // ARABIC LETTER FEH 0x00000642, // ARABIC LETTER QAF 0x00000643, // ARABIC LETTER KAF 0x00000644, // ARABIC LETTER LAM 0x00000645, // ARABIC LETTER MEEM 0x00000646, // ARABIC LETTER NOON 0x00000647, // ARABIC LETTER HEH 0x00000648, // ARABIC LETTER WAW 0x00000649, // ARABIC LETTER ALEF MAKSURA 0x0000064A, // ARABIC LETTER YEH 0x0000064B, // ARABIC FATHATAN 0x0000064C, // ARABIC DAMMATAN 0x0000064D, // ARABIC KASRATAN 0x0000064E, // ARABIC FATHA 0x0000064F, // ARABIC DAMMA 0x00000650, // ARABIC KASRA 0x00000651, // ARABIC SHADDA 0x00000652, // ARABIC SUKUN 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF // }; // ISO-8859-07 transcoding table static const t_quad ISO_8859_07_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x00002018, // LEFT SINGLE QUOTATION MARK 0x00002019, // RIGHT SINGLE QUOTATION MARK 0x000000A3, // POUND SIGN 0x000020AC, // EURO SIGN 0x000020AF, // DRACHMA SIGN 0x000000A6, // BROKEN BAR 0x000000A7, // SECTION SIGN 0x000000A8, // DIAERESIS 0x000000A9, // COPYRIGHT SIGN 0x0000037A, // GREEK YPOGEGRAMMENI 0x000000AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0x000000AC, // NOT SIGN 0x000000AD, // SOFT HYPHEN 0xFFFFFFFF, // 0x00002015, // HORIZONTAL BAR 0x000000B0, // DEGREE SIGN 0x000000B1, // PLUS-MINUS SIGN 0x000000B2, // SUPERSCRIPT TWO 0x000000B3, // SUPERSCRIPT THREE 0x00000384, // GREEK TONOS 0x00000385, // GREEK DIALYTIKA TONOS 0x00000386, // GREEK CAPITAL LETTER ALPHA WITH TONOS 0x000000B7, // MIDDLE DOT 0x00000388, // GREEK CAPITAL LETTER EPSILON WITH TONOS 0x00000389, // GREEK CAPITAL LETTER ETA WITH TONOS 0x0000038A, // GREEK CAPITAL LETTER IOTA WITH TONOS 0x000000BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0x0000038C, // GREEK CAPITAL LETTER OMICRON WITH TONOS 0x000000BD, // VULGAR FRACTION ONE HALF 0x0000038E, // GREEK CAPITAL LETTER UPSILON WITH TONOS 0x0000038F, // GREEK CAPITAL LETTER OMEGA WITH TONOS 0x00000390, // GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 0x00000391, // GREEK CAPITAL LETTER ALPHA 0x00000392, // GREEK CAPITAL LETTER BETA 0x00000393, // GREEK CAPITAL LETTER GAMMA 0x00000394, // GREEK CAPITAL LETTER DELTA 0x00000395, // GREEK CAPITAL LETTER EPSILON 0x00000396, // GREEK CAPITAL LETTER ZETA 0x00000397, // GREEK CAPITAL LETTER ETA 0x00000398, // GREEK CAPITAL LETTER THETA 0x00000399, // GREEK CAPITAL LETTER IOTA 0x0000039A, // GREEK CAPITAL LETTER KAPPA 0x0000039B, // GREEK CAPITAL LETTER LAMDA 0x0000039C, // GREEK CAPITAL LETTER MU 0x0000039D, // GREEK CAPITAL LETTER NU 0x0000039E, // GREEK CAPITAL LETTER XI 0x0000039F, // GREEK CAPITAL LETTER OMICRON 0x000003A0, // GREEK CAPITAL LETTER PI 0x000003A1, // GREEK CAPITAL LETTER RHO 0xFFFFFFFF, // 0x000003A3, // GREEK CAPITAL LETTER SIGMA 0x000003A4, // GREEK CAPITAL LETTER TAU 0x000003A5, // GREEK CAPITAL LETTER UPSILON 0x000003A6, // GREEK CAPITAL LETTER PHI 0x000003A7, // GREEK CAPITAL LETTER CHI 0x000003A8, // GREEK CAPITAL LETTER PSI 0x000003A9, // GREEK CAPITAL LETTER OMEGA 0x000003AA, // GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 0x000003AB, // GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 0x000003AC, // GREEK SMALL LETTER ALPHA WITH TONOS 0x000003AD, // GREEK SMALL LETTER EPSILON WITH TONOS 0x000003AE, // GREEK SMALL LETTER ETA WITH TONOS 0x000003AF, // GREEK SMALL LETTER IOTA WITH TONOS 0x000003B0, // GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 0x000003B1, // GREEK SMALL LETTER ALPHA 0x000003B2, // GREEK SMALL LETTER BETA 0x000003B3, // GREEK SMALL LETTER GAMMA 0x000003B4, // GREEK SMALL LETTER DELTA 0x000003B5, // GREEK SMALL LETTER EPSILON 0x000003B6, // GREEK SMALL LETTER ZETA 0x000003B7, // GREEK SMALL LETTER ETA 0x000003B8, // GREEK SMALL LETTER THETA 0x000003B9, // GREEK SMALL LETTER IOTA 0x000003BA, // GREEK SMALL LETTER KAPPA 0x000003BB, // GREEK SMALL LETTER LAMDA 0x000003BC, // GREEK SMALL LETTER MU 0x000003BD, // GREEK SMALL LETTER NU 0x000003BE, // GREEK SMALL LETTER XI 0x000003BF, // GREEK SMALL LETTER OMICRON 0x000003C0, // GREEK SMALL LETTER PI 0x000003C1, // GREEK SMALL LETTER RHO 0x000003C2, // GREEK SMALL LETTER FINAL SIGMA 0x000003C3, // GREEK SMALL LETTER SIGMA 0x000003C4, // GREEK SMALL LETTER TAU 0x000003C5, // GREEK SMALL LETTER UPSILON 0x000003C6, // GREEK SMALL LETTER PHI 0x000003C7, // GREEK SMALL LETTER CHI 0x000003C8, // GREEK SMALL LETTER PSI 0x000003C9, // GREEK SMALL LETTER OMEGA 0x000003CA, // GREEK SMALL LETTER IOTA WITH DIALYTIKA 0x000003CB, // GREEK SMALL LETTER UPSILON WITH DIALYTIKA 0x000003CC, // GREEK SMALL LETTER OMICRON WITH TONOS 0x000003CD, // GREEK SMALL LETTER UPSILON WITH TONOS 0x000003CE, // GREEK SMALL LETTER OMEGA WITH TONOS 0xFFFFFFFF // }; // ISO-8859-08 transcoding table static const t_quad ISO_8859_08_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0xFFFFFFFF, // 0x000000A2, // CENT SIGN 0x000000A3, // POUND SIGN 0x000000A4, // CURRENCY SIGN 0x000000A5, // YEN SIGN 0x000000A6, // BROKEN BAR 0x000000A7, // SECTION SIGN 0x000000A8, // DIAERESIS 0x000000A9, // COPYRIGHT SIGN 0x000000D7, // MULTIPLICATION SIGN 0x000000AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0x000000AC, // NOT SIGN 0x000000AD, // SOFT HYPHEN 0x000000AE, // REGISTERED SIGN 0x000000AF, // MACRON 0x000000B0, // DEGREE SIGN 0x000000B1, // PLUS-MINUS SIGN 0x000000B2, // SUPERSCRIPT TWO 0x000000B3, // SUPERSCRIPT THREE 0x000000B4, // ACUTE ACCENT 0x000000B5, // MICRO SIGN 0x000000B6, // PILCROW SIGN 0x000000B7, // MIDDLE DOT 0x000000B8, // CEDILLA 0x000000B9, // SUPERSCRIPT ONE 0x000000F7, // DIVISION SIGN 0x000000BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0x000000BC, // VULGAR FRACTION ONE QUARTER 0x000000BD, // VULGAR FRACTION ONE HALF 0x000000BE, // VULGAR FRACTION THREE QUARTERS 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0x00002017, // DOUBLE LOW LINE 0x000005D0, // HEBREW LETTER ALEF 0x000005D1, // HEBREW LETTER BET 0x000005D2, // HEBREW LETTER GIMEL 0x000005D3, // HEBREW LETTER DALET 0x000005D4, // HEBREW LETTER HE 0x000005D5, // HEBREW LETTER VAV 0x000005D6, // HEBREW LETTER ZAYIN 0x000005D7, // HEBREW LETTER HET 0x000005D8, // HEBREW LETTER TET 0x000005D9, // HEBREW LETTER YOD 0x000005DA, // HEBREW LETTER FINAL KAF 0x000005DB, // HEBREW LETTER KAF 0x000005DC, // HEBREW LETTER LAMED 0x000005DD, // HEBREW LETTER FINAL MEM 0x000005DE, // HEBREW LETTER MEM 0x000005DF, // HEBREW LETTER FINAL NUN 0x000005E0, // HEBREW LETTER NUN 0x000005E1, // HEBREW LETTER SAMEKH 0x000005E2, // HEBREW LETTER AYIN 0x000005E3, // HEBREW LETTER FINAL PE 0x000005E4, // HEBREW LETTER PE 0x000005E5, // HEBREW LETTER FINAL TSADI 0x000005E6, // HEBREW LETTER TSADI 0x000005E7, // HEBREW LETTER QOF 0x000005E8, // HEBREW LETTER RESH 0x000005E9, // HEBREW LETTER SHIN 0x000005EA, // HEBREW LETTER TAV 0xFFFFFFFF, // 0xFFFFFFFF, // 0x0000200E, // LEFT-TO-RIGHT MARK 0x0000200F, // RIGHT-TO-LEFT MARK 0xFFFFFFFF // }; // ISO-8859-09 transcoding table static const t_quad ISO_8859_09_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x000000A1, // INVERTED EXCLAMATION MARK 0x000000A2, // CENT SIGN 0x000000A3, // POUND SIGN 0x000000A4, // CURRENCY SIGN 0x000000A5, // YEN SIGN 0x000000A6, // BROKEN BAR 0x000000A7, // SECTION SIGN 0x000000A8, // DIAERESIS 0x000000A9, // COPYRIGHT SIGN 0x000000AA, // FEMININE ORDINAL INDICATOR 0x000000AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0x000000AC, // NOT SIGN 0x000000AD, // SOFT HYPHEN 0x000000AE, // REGISTERED SIGN 0x000000AF, // MACRON 0x000000B0, // DEGREE SIGN 0x000000B1, // PLUS-MINUS SIGN 0x000000B2, // SUPERSCRIPT TWO 0x000000B3, // SUPERSCRIPT THREE 0x000000B4, // ACUTE ACCENT 0x000000B5, // MICRO SIGN 0x000000B6, // PILCROW SIGN 0x000000B7, // MIDDLE DOT 0x000000B8, // CEDILLA 0x000000B9, // SUPERSCRIPT ONE 0x000000BA, // MASCULINE ORDINAL INDICATOR 0x000000BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0x000000BC, // VULGAR FRACTION ONE QUARTER 0x000000BD, // VULGAR FRACTION ONE HALF 0x000000BE, // VULGAR FRACTION THREE QUARTERS 0x000000BF, // INVERTED QUESTION MARK 0x000000C0, // LATIN CAPITAL LETTER A WITH GRAVE 0x000000C1, // LATIN CAPITAL LETTER A WITH ACUTE 0x000000C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0x000000C3, // LATIN CAPITAL LETTER A WITH TILDE 0x000000C4, // LATIN CAPITAL LETTER A WITH DIAERESIS 0x000000C5, // LATIN CAPITAL LETTER A WITH RING ABOVE 0x000000C6, // LATIN CAPITAL LETTER AE 0x000000C7, // LATIN CAPITAL LETTER C WITH CEDILLA 0x000000C8, // LATIN CAPITAL LETTER E WITH GRAVE 0x000000C9, // LATIN CAPITAL LETTER E WITH ACUTE 0x000000CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0x000000CB, // LATIN CAPITAL LETTER E WITH DIAERESIS 0x000000CC, // LATIN CAPITAL LETTER I WITH GRAVE 0x000000CD, // LATIN CAPITAL LETTER I WITH ACUTE 0x000000CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0x000000CF, // LATIN CAPITAL LETTER I WITH DIAERESIS 0x0000011E, // LATIN CAPITAL LETTER G WITH BREVE 0x000000D1, // LATIN CAPITAL LETTER N WITH TILDE 0x000000D2, // LATIN CAPITAL LETTER O WITH GRAVE 0x000000D3, // LATIN CAPITAL LETTER O WITH ACUTE 0x000000D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0x000000D5, // LATIN CAPITAL LETTER O WITH TILDE 0x000000D6, // LATIN CAPITAL LETTER O WITH DIAERESIS 0x000000D7, // MULTIPLICATION SIGN 0x000000D8, // LATIN CAPITAL LETTER O WITH STROKE 0x000000D9, // LATIN CAPITAL LETTER U WITH GRAVE 0x000000DA, // LATIN CAPITAL LETTER U WITH ACUTE 0x000000DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0x000000DC, // LATIN CAPITAL LETTER U WITH DIAERESIS 0x00000130, // LATIN CAPITAL LETTER I WITH DOT ABOVE 0x0000015E, // LATIN CAPITAL LETTER S WITH CEDILLA 0x000000DF, // LATIN SMALL LETTER SHARP S 0x000000E0, // LATIN SMALL LETTER A WITH GRAVE 0x000000E1, // LATIN SMALL LETTER A WITH ACUTE 0x000000E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX 0x000000E3, // LATIN SMALL LETTER A WITH TILDE 0x000000E4, // LATIN SMALL LETTER A WITH DIAERESIS 0x000000E5, // LATIN SMALL LETTER A WITH RING ABOVE 0x000000E6, // LATIN SMALL LETTER AE 0x000000E7, // LATIN SMALL LETTER C WITH CEDILLA 0x000000E8, // LATIN SMALL LETTER E WITH GRAVE 0x000000E9, // LATIN SMALL LETTER E WITH ACUTE 0x000000EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX 0x000000EB, // LATIN SMALL LETTER E WITH DIAERESIS 0x000000EC, // LATIN SMALL LETTER I WITH GRAVE 0x000000ED, // LATIN SMALL LETTER I WITH ACUTE 0x000000EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX 0x000000EF, // LATIN SMALL LETTER I WITH DIAERESIS 0x0000011F, // LATIN SMALL LETTER G WITH BREVE 0x000000F1, // LATIN SMALL LETTER N WITH TILDE 0x000000F2, // LATIN SMALL LETTER O WITH GRAVE 0x000000F3, // LATIN SMALL LETTER O WITH ACUTE 0x000000F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX 0x000000F5, // LATIN SMALL LETTER O WITH TILDE 0x000000F6, // LATIN SMALL LETTER O WITH DIAERESIS 0x000000F7, // DIVISION SIGN 0x000000F8, // LATIN SMALL LETTER O WITH STROKE 0x000000F9, // LATIN SMALL LETTER U WITH GRAVE 0x000000FA, // LATIN SMALL LETTER U WITH ACUTE 0x000000FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX 0x000000FC, // LATIN SMALL LETTER U WITH DIAERESIS 0x00000131, // LATIN SMALL LETTER DOTLESS I 0x0000015F, // LATIN SMALL LETTER S WITH CEDILLA 0x000000FF // LATIN SMALL LETTER Y WITH DIAERESIS }; // ISO-8859-10 transcoding table static const t_quad ISO_8859_10_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x00000104, // LATIN CAPITAL LETTER A WITH OGONEK 0x00000112, // LATIN CAPITAL LETTER E WITH MACRON 0x00000122, // LATIN CAPITAL LETTER G WITH CEDILLA 0x0000012A, // LATIN CAPITAL LETTER I WITH MACRON 0x00000128, // LATIN CAPITAL LETTER I WITH TILDE 0x00000136, // LATIN CAPITAL LETTER K WITH CEDILLA 0x000000A7, // SECTION SIGN 0x0000013B, // LATIN CAPITAL LETTER L WITH CEDILLA 0x00000110, // LATIN CAPITAL LETTER D WITH STROKE 0x00000160, // LATIN CAPITAL LETTER S WITH CARON 0x00000166, // LATIN CAPITAL LETTER T WITH STROKE 0x0000017D, // LATIN CAPITAL LETTER Z WITH CARON 0x000000AD, // SOFT HYPHEN 0x0000016A, // LATIN CAPITAL LETTER U WITH MACRON 0x0000014A, // LATIN CAPITAL LETTER ENG 0x000000B0, // DEGREE SIGN 0x00000105, // LATIN SMALL LETTER A WITH OGONEK 0x00000113, // LATIN SMALL LETTER E WITH MACRON 0x00000123, // LATIN SMALL LETTER G WITH CEDILLA 0x0000012B, // LATIN SMALL LETTER I WITH MACRON 0x00000129, // LATIN SMALL LETTER I WITH TILDE 0x00000137, // LATIN SMALL LETTER K WITH CEDILLA 0x000000B7, // MIDDLE DOT 0x0000013C, // LATIN SMALL LETTER L WITH CEDILLA 0x00000111, // LATIN SMALL LETTER D WITH STROKE 0x00000161, // LATIN SMALL LETTER S WITH CARON 0x00000167, // LATIN SMALL LETTER T WITH STROKE 0x0000017E, // LATIN SMALL LETTER Z WITH CARON 0x00002015, // HORIZONTAL BAR 0x0000016B, // LATIN SMALL LETTER U WITH MACRON 0x0000014B, // LATIN SMALL LETTER ENG 0x00000100, // LATIN CAPITAL LETTER A WITH MACRON 0x000000C1, // LATIN CAPITAL LETTER A WITH ACUTE 0x000000C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0x000000C3, // LATIN CAPITAL LETTER A WITH TILDE 0x000000C4, // LATIN CAPITAL LETTER A WITH DIAERESIS 0x000000C5, // LATIN CAPITAL LETTER A WITH RING ABOVE 0x000000C6, // LATIN CAPITAL LETTER AE 0x0000012E, // LATIN CAPITAL LETTER I WITH OGONEK 0x0000010C, // LATIN CAPITAL LETTER C WITH CARON 0x000000C9, // LATIN CAPITAL LETTER E WITH ACUTE 0x00000118, // LATIN CAPITAL LETTER E WITH OGONEK 0x000000CB, // LATIN CAPITAL LETTER E WITH DIAERESIS 0x00000116, // LATIN CAPITAL LETTER E WITH DOT ABOVE 0x000000CD, // LATIN CAPITAL LETTER I WITH ACUTE 0x000000CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0x000000CF, // LATIN CAPITAL LETTER I WITH DIAERESIS 0x000000D0, // LATIN CAPITAL LETTER ETH (Icelandic) 0x00000145, // LATIN CAPITAL LETTER N WITH CEDILLA 0x0000014C, // LATIN CAPITAL LETTER O WITH MACRON 0x000000D3, // LATIN CAPITAL LETTER O WITH ACUTE 0x000000D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0x000000D5, // LATIN CAPITAL LETTER O WITH TILDE 0x000000D6, // LATIN CAPITAL LETTER O WITH DIAERESIS 0x00000168, // LATIN CAPITAL LETTER U WITH TILDE 0x000000D8, // LATIN CAPITAL LETTER O WITH STROKE 0x00000172, // LATIN CAPITAL LETTER U WITH OGONEK 0x000000DA, // LATIN CAPITAL LETTER U WITH ACUTE 0x000000DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0x000000DC, // LATIN CAPITAL LETTER U WITH DIAERESIS 0x000000DD, // LATIN CAPITAL LETTER Y WITH ACUTE 0x000000DE, // LATIN CAPITAL LETTER THORN (Icelandic) 0x000000DF, // LATIN SMALL LETTER SHARP S (German) 0x00000101, // LATIN SMALL LETTER A WITH MACRON 0x000000E1, // LATIN SMALL LETTER A WITH ACUTE 0x000000E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX 0x000000E3, // LATIN SMALL LETTER A WITH TILDE 0x000000E4, // LATIN SMALL LETTER A WITH DIAERESIS 0x000000E5, // LATIN SMALL LETTER A WITH RING ABOVE 0x000000E6, // LATIN SMALL LETTER AE 0x0000012F, // LATIN SMALL LETTER I WITH OGONEK 0x0000010D, // LATIN SMALL LETTER C WITH CARON 0x000000E9, // LATIN SMALL LETTER E WITH ACUTE 0x00000119, // LATIN SMALL LETTER E WITH OGONEK 0x000000EB, // LATIN SMALL LETTER E WITH DIAERESIS 0x00000117, // LATIN SMALL LETTER E WITH DOT ABOVE 0x000000ED, // LATIN SMALL LETTER I WITH ACUTE 0x000000EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX 0x000000EF, // LATIN SMALL LETTER I WITH DIAERESIS 0x000000F0, // LATIN SMALL LETTER ETH (Icelandic) 0x00000146, // LATIN SMALL LETTER N WITH CEDILLA 0x0000014D, // LATIN SMALL LETTER O WITH MACRON 0x000000F3, // LATIN SMALL LETTER O WITH ACUTE 0x000000F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX 0x000000F5, // LATIN SMALL LETTER O WITH TILDE 0x000000F6, // LATIN SMALL LETTER O WITH DIAERESIS 0x00000169, // LATIN SMALL LETTER U WITH TILDE 0x000000F8, // LATIN SMALL LETTER O WITH STROKE 0x00000173, // LATIN SMALL LETTER U WITH OGONEK 0x000000FA, // LATIN SMALL LETTER U WITH ACUTE 0x000000FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX 0x000000FC, // LATIN SMALL LETTER U WITH DIAERESIS 0x000000FD, // LATIN SMALL LETTER Y WITH ACUTE 0x000000FE, // LATIN SMALL LETTER THORN (Icelandic) 0x00000138 // LATIN SMALL LETTER KRA }; // ISO-8859-11 transcoding table static const t_quad ISO_8859_11_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x00000E01, // THAI CHARACTER KO KAI 0x00000E02, // THAI CHARACTER KHO KHAI 0x00000E03, // THAI CHARACTER KHO KHUAT 0x00000E04, // THAI CHARACTER KHO KHWAI 0x00000E05, // THAI CHARACTER KHO KHON 0x00000E06, // THAI CHARACTER KHO RAKHANG 0x00000E07, // THAI CHARACTER NGO NGU 0x00000E08, // THAI CHARACTER CHO CHAN 0x00000E09, // THAI CHARACTER CHO CHING 0x00000E0A, // THAI CHARACTER CHO CHANG 0x00000E0B, // THAI CHARACTER SO SO 0x00000E0C, // THAI CHARACTER CHO CHOE 0x00000E0D, // THAI CHARACTER YO YING 0x00000E0E, // THAI CHARACTER DO CHADA 0x00000E0F, // THAI CHARACTER TO PATAK 0x00000E10, // THAI CHARACTER THO THAN 0x00000E11, // THAI CHARACTER THO NANGMONTHO 0x00000E12, // THAI CHARACTER THO PHUTHAO 0x00000E13, // THAI CHARACTER NO NEN 0x00000E14, // THAI CHARACTER DO DEK 0x00000E15, // THAI CHARACTER TO TAO 0x00000E16, // THAI CHARACTER THO THUNG 0x00000E17, // THAI CHARACTER THO THAHAN 0x00000E18, // THAI CHARACTER THO THONG 0x00000E19, // THAI CHARACTER NO NU 0x00000E1A, // THAI CHARACTER BO BAIMAI 0x00000E1B, // THAI CHARACTER PO PLA 0x00000E1C, // THAI CHARACTER PHO PHUNG 0x00000E1D, // THAI CHARACTER FO FA 0x00000E1E, // THAI CHARACTER PHO PHAN 0x00000E1F, // THAI CHARACTER FO FAN 0x00000E20, // THAI CHARACTER PHO SAMPHAO 0x00000E21, // THAI CHARACTER MO MA 0x00000E22, // THAI CHARACTER YO YAK 0x00000E23, // THAI CHARACTER RO RUA 0x00000E24, // THAI CHARACTER RU 0x00000E25, // THAI CHARACTER LO LING 0x00000E26, // THAI CHARACTER LU 0x00000E27, // THAI CHARACTER WO WAEN 0x00000E28, // THAI CHARACTER SO SALA 0x00000E29, // THAI CHARACTER SO RUSI 0x00000E2A, // THAI CHARACTER SO SUA 0x00000E2B, // THAI CHARACTER HO HIP 0x00000E2C, // THAI CHARACTER LO CHULA 0x00000E2D, // THAI CHARACTER O ANG 0x00000E2E, // THAI CHARACTER HO NOKHUK 0x00000E2F, // THAI CHARACTER PAIYANNOI 0x00000E30, // THAI CHARACTER SARA A 0x00000E31, // THAI CHARACTER MAI HAN-AKAT 0x00000E32, // THAI CHARACTER SARA AA 0x00000E33, // THAI CHARACTER SARA AM 0x00000E34, // THAI CHARACTER SARA I 0x00000E35, // THAI CHARACTER SARA II 0x00000E36, // THAI CHARACTER SARA UE 0x00000E37, // THAI CHARACTER SARA UEE 0x00000E38, // THAI CHARACTER SARA U 0x00000E39, // THAI CHARACTER SARA UU 0x00000E3A, // THAI CHARACTER PHINTHU 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0x00000E3F, // THAI CURRENCY SYMBOL BAHT 0x00000E40, // THAI CHARACTER SARA E 0x00000E41, // THAI CHARACTER SARA AE 0x00000E42, // THAI CHARACTER SARA O 0x00000E43, // THAI CHARACTER SARA AI MAIMUAN 0x00000E44, // THAI CHARACTER SARA AI MAIMALAI 0x00000E45, // THAI CHARACTER LAKKHANGYAO 0x00000E46, // THAI CHARACTER MAIYAMOK 0x00000E47, // THAI CHARACTER MAITAIKHU 0x00000E48, // THAI CHARACTER MAI EK 0x00000E49, // THAI CHARACTER MAI THO 0x00000E4A, // THAI CHARACTER MAI TRI 0x00000E4B, // THAI CHARACTER MAI CHATTAWA 0x00000E4C, // THAI CHARACTER THANTHAKHAT 0x00000E4D, // THAI CHARACTER NIKHAHIT 0x00000E4E, // THAI CHARACTER YAMAKKAN 0x00000E4F, // THAI CHARACTER FONGMAN 0x00000E50, // THAI DIGIT ZERO 0x00000E51, // THAI DIGIT ONE 0x00000E52, // THAI DIGIT TWO 0x00000E53, // THAI DIGIT THREE 0x00000E54, // THAI DIGIT FOUR 0x00000E55, // THAI DIGIT FIVE 0x00000E56, // THAI DIGIT SIX 0x00000E57, // THAI DIGIT SEVEN 0x00000E58, // THAI DIGIT EIGHT 0x00000E59, // THAI DIGIT NINE 0x00000E5A, // THAI CHARACTER ANGKHANKHU 0x00000E5B, // THAI CHARACTER KHOMUT 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF, // 0xFFFFFFFF // }; // ISO-8859-13 transcoding table static const t_quad ISO_8859_13_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x0000201D, // RIGHT DOUBLE QUOTATION MARK 0x000000A2, // CENT SIGN 0x000000A3, // POUND SIGN 0x000000A4, // CURRENCY SIGN 0x0000201E, // DOUBLE LOW-9 QUOTATION MARK 0x000000A6, // BROKEN BAR 0x000000A7, // SECTION SIGN 0x000000D8, // LATIN CAPITAL LETTER O WITH STROKE 0x000000A9, // COPYRIGHT SIGN 0x00000156, // LATIN CAPITAL LETTER R WITH CEDILLA 0x000000AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0x000000AC, // NOT SIGN 0x000000AD, // SOFT HYPHEN 0x000000AE, // REGISTERED SIGN 0x000000C6, // LATIN CAPITAL LETTER AE 0x000000B0, // DEGREE SIGN 0x000000B1, // PLUS-MINUS SIGN 0x000000B2, // SUPERSCRIPT TWO 0x000000B3, // SUPERSCRIPT THREE 0x0000201C, // LEFT DOUBLE QUOTATION MARK 0x000000B5, // MICRO SIGN 0x000000B6, // PILCROW SIGN 0x000000B7, // MIDDLE DOT 0x000000F8, // LATIN SMALL LETTER O WITH STROKE 0x000000B9, // SUPERSCRIPT ONE 0x00000157, // LATIN SMALL LETTER R WITH CEDILLA 0x000000BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0x000000BC, // VULGAR FRACTION ONE QUARTER 0x000000BD, // VULGAR FRACTION ONE HALF 0x000000BE, // VULGAR FRACTION THREE QUARTERS 0x000000E6, // LATIN SMALL LETTER AE 0x00000104, // LATIN CAPITAL LETTER A WITH OGONEK 0x0000012E, // LATIN CAPITAL LETTER I WITH OGONEK 0x00000100, // LATIN CAPITAL LETTER A WITH MACRON 0x00000106, // LATIN CAPITAL LETTER C WITH ACUTE 0x000000C4, // LATIN CAPITAL LETTER A WITH DIAERESIS 0x000000C5, // LATIN CAPITAL LETTER A WITH RING ABOVE 0x00000118, // LATIN CAPITAL LETTER E WITH OGONEK 0x00000112, // LATIN CAPITAL LETTER E WITH MACRON 0x0000010C, // LATIN CAPITAL LETTER C WITH CARON 0x000000C9, // LATIN CAPITAL LETTER E WITH ACUTE 0x00000179, // LATIN CAPITAL LETTER Z WITH ACUTE 0x00000116, // LATIN CAPITAL LETTER E WITH DOT ABOVE 0x00000122, // LATIN CAPITAL LETTER G WITH CEDILLA 0x00000136, // LATIN CAPITAL LETTER K WITH CEDILLA 0x0000012A, // LATIN CAPITAL LETTER I WITH MACRON 0x0000013B, // LATIN CAPITAL LETTER L WITH CEDILLA 0x00000160, // LATIN CAPITAL LETTER S WITH CARON 0x00000143, // LATIN CAPITAL LETTER N WITH ACUTE 0x00000145, // LATIN CAPITAL LETTER N WITH CEDILLA 0x000000D3, // LATIN CAPITAL LETTER O WITH ACUTE 0x0000014C, // LATIN CAPITAL LETTER O WITH MACRON 0x000000D5, // LATIN CAPITAL LETTER O WITH TILDE 0x000000D6, // LATIN CAPITAL LETTER O WITH DIAERESIS 0x000000D7, // MULTIPLICATION SIGN 0x00000172, // LATIN CAPITAL LETTER U WITH OGONEK 0x00000141, // LATIN CAPITAL LETTER L WITH STROKE 0x0000015A, // LATIN CAPITAL LETTER S WITH ACUTE 0x0000016A, // LATIN CAPITAL LETTER U WITH MACRON 0x000000DC, // LATIN CAPITAL LETTER U WITH DIAERESIS 0x0000017B, // LATIN CAPITAL LETTER Z WITH DOT ABOVE 0x0000017D, // LATIN CAPITAL LETTER Z WITH CARON 0x000000DF, // LATIN SMALL LETTER SHARP S (German) 0x00000105, // LATIN SMALL LETTER A WITH OGONEK 0x0000012F, // LATIN SMALL LETTER I WITH OGONEK 0x00000101, // LATIN SMALL LETTER A WITH MACRON 0x00000107, // LATIN SMALL LETTER C WITH ACUTE 0x000000E4, // LATIN SMALL LETTER A WITH DIAERESIS 0x000000E5, // LATIN SMALL LETTER A WITH RING ABOVE 0x00000119, // LATIN SMALL LETTER E WITH OGONEK 0x00000113, // LATIN SMALL LETTER E WITH MACRON 0x0000010D, // LATIN SMALL LETTER C WITH CARON 0x000000E9, // LATIN SMALL LETTER E WITH ACUTE 0x0000017A, // LATIN SMALL LETTER Z WITH ACUTE 0x00000117, // LATIN SMALL LETTER E WITH DOT ABOVE 0x00000123, // LATIN SMALL LETTER G WITH CEDILLA 0x00000137, // LATIN SMALL LETTER K WITH CEDILLA 0x0000012B, // LATIN SMALL LETTER I WITH MACRON 0x0000013C, // LATIN SMALL LETTER L WITH CEDILLA 0x00000161, // LATIN SMALL LETTER S WITH CARON 0x00000144, // LATIN SMALL LETTER N WITH ACUTE 0x00000146, // LATIN SMALL LETTER N WITH CEDILLA 0x000000F3, // LATIN SMALL LETTER O WITH ACUTE 0x0000014D, // LATIN SMALL LETTER O WITH MACRON 0x000000F5, // LATIN SMALL LETTER O WITH TILDE 0x000000F6, // LATIN SMALL LETTER O WITH DIAERESIS 0x000000F7, // DIVISION SIGN 0x00000173, // LATIN SMALL LETTER U WITH OGONEK 0x00000142, // LATIN SMALL LETTER L WITH STROKE 0x0000015B, // LATIN SMALL LETTER S WITH ACUTE 0x0000016B, // LATIN SMALL LETTER U WITH MACRON 0x000000FC, // LATIN SMALL LETTER U WITH DIAERESIS 0x0000017C, // LATIN SMALL LETTER Z WITH DOT ABOVE 0x0000017E, // LATIN SMALL LETTER Z WITH CARON 0x00002019 // RIGHT SINGLE QUOTATION MARK }; // ISO-8859-14 transcoding table static const t_quad ISO_8859_14_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x00001E02, // LATIN CAPITAL LETTER B WITH DOT ABOVE 0x00001E03, // LATIN SMALL LETTER B WITH DOT ABOVE 0x000000A3, // POUND SIGN 0x0000010A, // LATIN CAPITAL LETTER C WITH DOT ABOVE 0x0000010B, // LATIN SMALL LETTER C WITH DOT ABOVE 0x00001E0A, // LATIN CAPITAL LETTER D WITH DOT ABOVE 0x000000A7, // SECTION SIGN 0x00001E80, // LATIN CAPITAL LETTER W WITH GRAVE 0x000000A9, // COPYRIGHT SIGN 0x00001E82, // LATIN CAPITAL LETTER W WITH ACUTE 0x00001E0B, // LATIN SMALL LETTER D WITH DOT ABOVE 0x00001EF2, // LATIN CAPITAL LETTER Y WITH GRAVE 0x000000AD, // SOFT HYPHEN 0x000000AE, // REGISTERED SIGN 0x00000178, // LATIN CAPITAL LETTER Y WITH DIAERESIS 0x00001E1E, // LATIN CAPITAL LETTER F WITH DOT ABOVE 0x00001E1F, // LATIN SMALL LETTER F WITH DOT ABOVE 0x00000120, // LATIN CAPITAL LETTER G WITH DOT ABOVE 0x00000121, // LATIN SMALL LETTER G WITH DOT ABOVE 0x00001E40, // LATIN CAPITAL LETTER M WITH DOT ABOVE 0x00001E41, // LATIN SMALL LETTER M WITH DOT ABOVE 0x000000B6, // PILCROW SIGN 0x00001E56, // LATIN CAPITAL LETTER P WITH DOT ABOVE 0x00001E81, // LATIN SMALL LETTER W WITH GRAVE 0x00001E57, // LATIN SMALL LETTER P WITH DOT ABOVE 0x00001E83, // LATIN SMALL LETTER W WITH ACUTE 0x00001E60, // LATIN CAPITAL LETTER S WITH DOT ABOVE 0x00001EF3, // LATIN SMALL LETTER Y WITH GRAVE 0x00001E84, // LATIN CAPITAL LETTER W WITH DIAERESIS 0x00001E85, // LATIN SMALL LETTER W WITH DIAERESIS 0x00001E61, // LATIN SMALL LETTER S WITH DOT ABOVE 0x000000C0, // LATIN CAPITAL LETTER A WITH GRAVE 0x000000C1, // LATIN CAPITAL LETTER A WITH ACUTE 0x000000C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0x000000C3, // LATIN CAPITAL LETTER A WITH TILDE 0x000000C4, // LATIN CAPITAL LETTER A WITH DIAERESIS 0x000000C5, // LATIN CAPITAL LETTER A WITH RING ABOVE 0x000000C6, // LATIN CAPITAL LETTER AE 0x000000C7, // LATIN CAPITAL LETTER C WITH CEDILLA 0x000000C8, // LATIN CAPITAL LETTER E WITH GRAVE 0x000000C9, // LATIN CAPITAL LETTER E WITH ACUTE 0x000000CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0x000000CB, // LATIN CAPITAL LETTER E WITH DIAERESIS 0x000000CC, // LATIN CAPITAL LETTER I WITH GRAVE 0x000000CD, // LATIN CAPITAL LETTER I WITH ACUTE 0x000000CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0x000000CF, // LATIN CAPITAL LETTER I WITH DIAERESIS 0x00000174, // LATIN CAPITAL LETTER W WITH CIRCUMFLEX 0x000000D1, // LATIN CAPITAL LETTER N WITH TILDE 0x000000D2, // LATIN CAPITAL LETTER O WITH GRAVE 0x000000D3, // LATIN CAPITAL LETTER O WITH ACUTE 0x000000D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0x000000D5, // LATIN CAPITAL LETTER O WITH TILDE 0x000000D6, // LATIN CAPITAL LETTER O WITH DIAERESIS 0x00001E6A, // LATIN CAPITAL LETTER T WITH DOT ABOVE 0x000000D8, // LATIN CAPITAL LETTER O WITH STROKE 0x000000D9, // LATIN CAPITAL LETTER U WITH GRAVE 0x000000DA, // LATIN CAPITAL LETTER U WITH ACUTE 0x000000DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0x000000DC, // LATIN CAPITAL LETTER U WITH DIAERESIS 0x000000DD, // LATIN CAPITAL LETTER Y WITH ACUTE 0x00000176, // LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 0x000000DF, // LATIN SMALL LETTER SHARP S 0x000000E0, // LATIN SMALL LETTER A WITH GRAVE 0x000000E1, // LATIN SMALL LETTER A WITH ACUTE 0x000000E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX 0x000000E3, // LATIN SMALL LETTER A WITH TILDE 0x000000E4, // LATIN SMALL LETTER A WITH DIAERESIS 0x000000E5, // LATIN SMALL LETTER A WITH RING ABOVE 0x000000E6, // LATIN SMALL LETTER AE 0x000000E7, // LATIN SMALL LETTER C WITH CEDILLA 0x000000E8, // LATIN SMALL LETTER E WITH GRAVE 0x000000E9, // LATIN SMALL LETTER E WITH ACUTE 0x000000EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX 0x000000EB, // LATIN SMALL LETTER E WITH DIAERESIS 0x000000EC, // LATIN SMALL LETTER I WITH GRAVE 0x000000ED, // LATIN SMALL LETTER I WITH ACUTE 0x000000EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX 0x000000EF, // LATIN SMALL LETTER I WITH DIAERESIS 0x00000175, // LATIN SMALL LETTER W WITH CIRCUMFLEX 0x000000F1, // LATIN SMALL LETTER N WITH TILDE 0x000000F2, // LATIN SMALL LETTER O WITH GRAVE 0x000000F3, // LATIN SMALL LETTER O WITH ACUTE 0x000000F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX 0x000000F5, // LATIN SMALL LETTER O WITH TILDE 0x000000F6, // LATIN SMALL LETTER O WITH DIAERESIS 0x00001E6B, // LATIN SMALL LETTER T WITH DOT ABOVE 0x000000F8, // LATIN SMALL LETTER O WITH STROKE 0x000000F9, // LATIN SMALL LETTER U WITH GRAVE 0x000000FA, // LATIN SMALL LETTER U WITH ACUTE 0x000000FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX 0x000000FC, // LATIN SMALL LETTER U WITH DIAERESIS 0x000000FD, // LATIN SMALL LETTER Y WITH ACUTE 0x00000177, // LATIN SMALL LETTER Y WITH CIRCUMFLEX 0x000000FF // LATIN SMALL LETTER Y WITH DIAERESIS }; // ISO-8859-15 transcoding table static const t_quad ISO_8859_15_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x000000A1, // INVERTED EXCLAMATION MARK 0x000000A2, // CENT SIGN 0x000000A3, // POUND SIGN 0x000020AC, // EURO SIGN 0x000000A5, // YEN SIGN 0x00000160, // LATIN CAPITAL LETTER S WITH CARON 0x000000A7, // SECTION SIGN 0x00000161, // LATIN SMALL LETTER S WITH CARON 0x000000A9, // COPYRIGHT SIGN 0x000000AA, // FEMININE ORDINAL INDICATOR 0x000000AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0x000000AC, // NOT SIGN 0x000000AD, // SOFT HYPHEN 0x000000AE, // REGISTERED SIGN 0x000000AF, // MACRON 0x000000B0, // DEGREE SIGN 0x000000B1, // PLUS-MINUS SIGN 0x000000B2, // SUPERSCRIPT TWO 0x000000B3, // SUPERSCRIPT THREE 0x0000017D, // LATIN CAPITAL LETTER Z WITH CARON 0x000000B5, // MICRO SIGN 0x000000B6, // PILCROW SIGN 0x000000B7, // MIDDLE DOT 0x0000017E, // LATIN SMALL LETTER Z WITH CARON 0x000000B9, // SUPERSCRIPT ONE 0x000000BA, // MASCULINE ORDINAL INDICATOR 0x000000BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0x00000152, // LATIN CAPITAL LIGATURE OE 0x00000153, // LATIN SMALL LIGATURE OE 0x00000178, // LATIN CAPITAL LETTER Y WITH DIAERESIS 0x000000BF, // INVERTED QUESTION MARK 0x000000C0, // LATIN CAPITAL LETTER A WITH GRAVE 0x000000C1, // LATIN CAPITAL LETTER A WITH ACUTE 0x000000C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0x000000C3, // LATIN CAPITAL LETTER A WITH TILDE 0x000000C4, // LATIN CAPITAL LETTER A WITH DIAERESIS 0x000000C5, // LATIN CAPITAL LETTER A WITH RING ABOVE 0x000000C6, // LATIN CAPITAL LETTER AE 0x000000C7, // LATIN CAPITAL LETTER C WITH CEDILLA 0x000000C8, // LATIN CAPITAL LETTER E WITH GRAVE 0x000000C9, // LATIN CAPITAL LETTER E WITH ACUTE 0x000000CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0x000000CB, // LATIN CAPITAL LETTER E WITH DIAERESIS 0x000000CC, // LATIN CAPITAL LETTER I WITH GRAVE 0x000000CD, // LATIN CAPITAL LETTER I WITH ACUTE 0x000000CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0x000000CF, // LATIN CAPITAL LETTER I WITH DIAERESIS 0x000000D0, // LATIN CAPITAL LETTER ETH 0x000000D1, // LATIN CAPITAL LETTER N WITH TILDE 0x000000D2, // LATIN CAPITAL LETTER O WITH GRAVE 0x000000D3, // LATIN CAPITAL LETTER O WITH ACUTE 0x000000D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0x000000D5, // LATIN CAPITAL LETTER O WITH TILDE 0x000000D6, // LATIN CAPITAL LETTER O WITH DIAERESIS 0x000000D7, // MULTIPLICATION SIGN 0x000000D8, // LATIN CAPITAL LETTER O WITH STROKE 0x000000D9, // LATIN CAPITAL LETTER U WITH GRAVE 0x000000DA, // LATIN CAPITAL LETTER U WITH ACUTE 0x000000DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0x000000DC, // LATIN CAPITAL LETTER U WITH DIAERESIS 0x000000DD, // LATIN CAPITAL LETTER Y WITH ACUTE 0x000000DE, // LATIN CAPITAL LETTER THORN 0x000000DF, // LATIN SMALL LETTER SHARP S 0x000000E0, // LATIN SMALL LETTER A WITH GRAVE 0x000000E1, // LATIN SMALL LETTER A WITH ACUTE 0x000000E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX 0x000000E3, // LATIN SMALL LETTER A WITH TILDE 0x000000E4, // LATIN SMALL LETTER A WITH DIAERESIS 0x000000E5, // LATIN SMALL LETTER A WITH RING ABOVE 0x000000E6, // LATIN SMALL LETTER AE 0x000000E7, // LATIN SMALL LETTER C WITH CEDILLA 0x000000E8, // LATIN SMALL LETTER E WITH GRAVE 0x000000E9, // LATIN SMALL LETTER E WITH ACUTE 0x000000EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX 0x000000EB, // LATIN SMALL LETTER E WITH DIAERESIS 0x000000EC, // LATIN SMALL LETTER I WITH GRAVE 0x000000ED, // LATIN SMALL LETTER I WITH ACUTE 0x000000EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX 0x000000EF, // LATIN SMALL LETTER I WITH DIAERESIS 0x000000F0, // LATIN SMALL LETTER ETH 0x000000F1, // LATIN SMALL LETTER N WITH TILDE 0x000000F2, // LATIN SMALL LETTER O WITH GRAVE 0x000000F3, // LATIN SMALL LETTER O WITH ACUTE 0x000000F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX 0x000000F5, // LATIN SMALL LETTER O WITH TILDE 0x000000F6, // LATIN SMALL LETTER O WITH DIAERESIS 0x000000F7, // DIVISION SIGN 0x000000F8, // LATIN SMALL LETTER O WITH STROKE 0x000000F9, // LATIN SMALL LETTER U WITH GRAVE 0x000000FA, // LATIN SMALL LETTER U WITH ACUTE 0x000000FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX 0x000000FC, // LATIN SMALL LETTER U WITH DIAERESIS 0x000000FD, // LATIN SMALL LETTER Y WITH ACUTE 0x000000FE, // LATIN SMALL LETTER THORN 0x000000FF // LATIN SMALL LETTER Y WITH DIAERESIS }; // ISO-8859-16 transcoding table static const t_quad ISO_8859_16_MAP[256] = { 0x00000000, // NULL 0x00000001, // START OF HEADING 0x00000002, // START OF TEXT 0x00000003, // END OF TEXT 0x00000004, // END OF TRANSMISSION 0x00000005, // ENQUIRY 0x00000006, // ACKNOWLEDGE 0x00000007, // BELL 0x00000008, // BACKSPACE 0x00000009, // HORIZONTAL TABULATION 0x0000000A, // LINE FEED 0x0000000B, // VERTICAL TABULATION 0x0000000C, // FORM FEED 0x0000000D, // CARRIAGE RETURN 0x0000000E, // SHIFT OUT 0x0000000F, // SHIFT IN 0x00000010, // DATA LINK ESCAPE 0x00000011, // DEVICE CONTROL ONE 0x00000012, // DEVICE CONTROL TWO 0x00000013, // DEVICE CONTROL THREE 0x00000014, // DEVICE CONTROL FOUR 0x00000015, // NEGATIVE ACKNOWLEDGE 0x00000016, // SYNCHRONOUS IDLE 0x00000017, // END OF TRANSMISSION BLOCK 0x00000018, // CANCEL 0x00000019, // END OF MEDIUM 0x0000001A, // SUBSTITUTE 0x0000001B, // ESCAPE 0x0000001C, // FILE SEPARATOR 0x0000001D, // GROUP SEPARATOR 0x0000001E, // RECORD SEPARATOR 0x0000001F, // UNIT SEPARATOR 0x00000020, // SPACE 0x00000021, // EXCLAMATION MARK 0x00000022, // QUOTATION MARK 0x00000023, // NUMBER SIGN 0x00000024, // DOLLAR SIGN 0x00000025, // PERCENT SIGN 0x00000026, // AMPERSAND 0x00000027, // APOSTROPHE 0x00000028, // LEFT PARENTHESIS 0x00000029, // RIGHT PARENTHESIS 0x0000002A, // ASTERISK 0x0000002B, // PLUS SIGN 0x0000002C, // COMMA 0x0000002D, // HYPHEN-MINUS 0x0000002E, // FULL STOP 0x0000002F, // SOLIDUS 0x00000030, // DIGIT ZERO 0x00000031, // DIGIT ONE 0x00000032, // DIGIT TWO 0x00000033, // DIGIT THREE 0x00000034, // DIGIT FOUR 0x00000035, // DIGIT FIVE 0x00000036, // DIGIT SIX 0x00000037, // DIGIT SEVEN 0x00000038, // DIGIT EIGHT 0x00000039, // DIGIT NINE 0x0000003A, // COLON 0x0000003B, // SEMICOLON 0x0000003C, // LESS-THAN SIGN 0x0000003D, // EQUALS SIGN 0x0000003E, // GREATER-THAN SIGN 0x0000003F, // QUESTION MARK 0x00000040, // COMMERCIAL AT 0x00000041, // LATIN CAPITAL LETTER A 0x00000042, // LATIN CAPITAL LETTER B 0x00000043, // LATIN CAPITAL LETTER C 0x00000044, // LATIN CAPITAL LETTER D 0x00000045, // LATIN CAPITAL LETTER E 0x00000046, // LATIN CAPITAL LETTER F 0x00000047, // LATIN CAPITAL LETTER G 0x00000048, // LATIN CAPITAL LETTER H 0x00000049, // LATIN CAPITAL LETTER I 0x0000004A, // LATIN CAPITAL LETTER J 0x0000004B, // LATIN CAPITAL LETTER K 0x0000004C, // LATIN CAPITAL LETTER L 0x0000004D, // LATIN CAPITAL LETTER M 0x0000004E, // LATIN CAPITAL LETTER N 0x0000004F, // LATIN CAPITAL LETTER O 0x00000050, // LATIN CAPITAL LETTER P 0x00000051, // LATIN CAPITAL LETTER Q 0x00000052, // LATIN CAPITAL LETTER R 0x00000053, // LATIN CAPITAL LETTER S 0x00000054, // LATIN CAPITAL LETTER T 0x00000055, // LATIN CAPITAL LETTER U 0x00000056, // LATIN CAPITAL LETTER V 0x00000057, // LATIN CAPITAL LETTER W 0x00000058, // LATIN CAPITAL LETTER X 0x00000059, // LATIN CAPITAL LETTER Y 0x0000005A, // LATIN CAPITAL LETTER Z 0x0000005B, // LEFT SQUARE BRACKET 0x0000005C, // REVERSE SOLIDUS 0x0000005D, // RIGHT SQUARE BRACKET 0x0000005E, // CIRCUMFLEX ACCENT 0x0000005F, // LOW LINE 0x00000060, // GRAVE ACCENT 0x00000061, // LATIN SMALL LETTER A 0x00000062, // LATIN SMALL LETTER B 0x00000063, // LATIN SMALL LETTER C 0x00000064, // LATIN SMALL LETTER D 0x00000065, // LATIN SMALL LETTER E 0x00000066, // LATIN SMALL LETTER F 0x00000067, // LATIN SMALL LETTER G 0x00000068, // LATIN SMALL LETTER H 0x00000069, // LATIN SMALL LETTER I 0x0000006A, // LATIN SMALL LETTER J 0x0000006B, // LATIN SMALL LETTER K 0x0000006C, // LATIN SMALL LETTER L 0x0000006D, // LATIN SMALL LETTER M 0x0000006E, // LATIN SMALL LETTER N 0x0000006F, // LATIN SMALL LETTER O 0x00000070, // LATIN SMALL LETTER P 0x00000071, // LATIN SMALL LETTER Q 0x00000072, // LATIN SMALL LETTER R 0x00000073, // LATIN SMALL LETTER S 0x00000074, // LATIN SMALL LETTER T 0x00000075, // LATIN SMALL LETTER U 0x00000076, // LATIN SMALL LETTER V 0x00000077, // LATIN SMALL LETTER W 0x00000078, // LATIN SMALL LETTER X 0x00000079, // LATIN SMALL LETTER Y 0x0000007A, // LATIN SMALL LETTER Z 0x0000007B, // LEFT CURLY BRACKET 0x0000007C, // VERTICAL LINE 0x0000007D, // RIGHT CURLY BRACKET 0x0000007E, // TILDE 0x0000007F, // DELETE 0x00000080, // 0x00000081, // 0x00000082, // 0x00000083, // 0x00000084, // 0x00000085, // 0x00000086, // 0x00000087, // 0x00000088, // 0x00000089, // 0x0000008A, // 0x0000008B, // 0x0000008C, // 0x0000008D, // 0x0000008E, // 0x0000008F, // 0x00000090, // 0x00000091, // 0x00000092, // 0x00000093, // 0x00000094, // 0x00000095, // 0x00000096, // 0x00000097, // 0x00000098, // 0x00000099, // 0x0000009A, // 0x0000009B, // 0x0000009C, // 0x0000009D, // 0x0000009E, // 0x0000009F, // 0x000000A0, // NO-BREAK SPACE 0x00000104, // LATIN CAPITAL LETTER A WITH OGONEK 0x00000105, // LATIN SMALL LETTER A WITH OGONEK 0x00000141, // LATIN CAPITAL LETTER L WITH STROKE 0x000020AC, // EURO SIGN 0x0000201E, // DOUBLE LOW-9 QUOTATION MARK 0x00000160, // LATIN CAPITAL LETTER S WITH CARON 0x000000A7, // SECTION SIGN 0x00000161, // LATIN SMALL LETTER S WITH CARON 0x000000A9, // COPYRIGHT SIGN 0x00000218, // LATIN CAPITAL LETTER S WITH COMMA BELOW 0x000000AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0x00000179, // LATIN CAPITAL LETTER Z WITH ACUTE 0x000000AD, // SOFT HYPHEN 0x0000017A, // LATIN SMALL LETTER Z WITH ACUTE 0x0000017B, // LATIN CAPITAL LETTER Z WITH DOT ABOVE 0x000000B0, // DEGREE SIGN 0x000000B1, // PLUS-MINUS SIGN 0x0000010C, // LATIN CAPITAL LETTER C WITH CARON 0x00000142, // LATIN SMALL LETTER L WITH STROKE 0x0000017D, // LATIN CAPITAL LETTER Z WITH CARON 0x0000201D, // RIGHT DOUBLE QUOTATION MARK 0x000000B6, // PILCROW SIGN 0x000000B7, // MIDDLE DOT 0x0000017E, // LATIN SMALL LETTER Z WITH CARON 0x0000010D, // LATIN SMALL LETTER C WITH CARON 0x00000219, // LATIN SMALL LETTER S WITH COMMA BELOW 0x000000BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0x00000152, // LATIN CAPITAL LIGATURE OE 0x00000153, // LATIN SMALL LIGATURE OE 0x00000178, // LATIN CAPITAL LETTER Y WITH DIAERESIS 0x0000017C, // LATIN SMALL LETTER Z WITH DOT ABOVE 0x000000C0, // LATIN CAPITAL LETTER A WITH GRAVE 0x000000C1, // LATIN CAPITAL LETTER A WITH ACUTE 0x000000C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0x00000102, // LATIN CAPITAL LETTER A WITH BREVE 0x000000C4, // LATIN CAPITAL LETTER A WITH DIAERESIS 0x00000106, // LATIN CAPITAL LETTER C WITH ACUTE 0x000000C6, // LATIN CAPITAL LETTER AE 0x000000C7, // LATIN CAPITAL LETTER C WITH CEDILLA 0x000000C8, // LATIN CAPITAL LETTER E WITH GRAVE 0x000000C9, // LATIN CAPITAL LETTER E WITH ACUTE 0x000000CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0x000000CB, // LATIN CAPITAL LETTER E WITH DIAERESIS 0x000000CC, // LATIN CAPITAL LETTER I WITH GRAVE 0x000000CD, // LATIN CAPITAL LETTER I WITH ACUTE 0x000000CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0x000000CF, // LATIN CAPITAL LETTER I WITH DIAERESIS 0x00000110, // LATIN CAPITAL LETTER D WITH STROKE 0x00000143, // LATIN CAPITAL LETTER N WITH ACUTE 0x000000D2, // LATIN CAPITAL LETTER O WITH GRAVE 0x000000D3, // LATIN CAPITAL LETTER O WITH ACUTE 0x000000D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0x00000150, // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 0x000000D6, // LATIN CAPITAL LETTER O WITH DIAERESIS 0x0000015A, // LATIN CAPITAL LETTER S WITH ACUTE 0x00000170, // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 0x000000D9, // LATIN CAPITAL LETTER U WITH GRAVE 0x000000DA, // LATIN CAPITAL LETTER U WITH ACUTE 0x000000DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0x000000DC, // LATIN CAPITAL LETTER U WITH DIAERESIS 0x00000118, // LATIN CAPITAL LETTER E WITH OGONEK 0x0000021A, // LATIN CAPITAL LETTER T WITH COMMA BELOW 0x000000DF, // LATIN SMALL LETTER SHARP S 0x000000E0, // LATIN SMALL LETTER A WITH GRAVE 0x000000E1, // LATIN SMALL LETTER A WITH ACUTE 0x000000E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX 0x00000103, // LATIN SMALL LETTER A WITH BREVE 0x000000E4, // LATIN SMALL LETTER A WITH DIAERESIS 0x00000107, // LATIN SMALL LETTER C WITH ACUTE 0x000000E6, // LATIN SMALL LETTER AE 0x000000E7, // LATIN SMALL LETTER C WITH CEDILLA 0x000000E8, // LATIN SMALL LETTER E WITH GRAVE 0x000000E9, // LATIN SMALL LETTER E WITH ACUTE 0x000000EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX 0x000000EB, // LATIN SMALL LETTER E WITH DIAERESIS 0x000000EC, // LATIN SMALL LETTER I WITH GRAVE 0x000000ED, // LATIN SMALL LETTER I WITH ACUTE 0x000000EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX 0x000000EF, // LATIN SMALL LETTER I WITH DIAERESIS 0x00000111, // LATIN SMALL LETTER D WITH STROKE 0x00000144, // LATIN SMALL LETTER N WITH ACUTE 0x000000F2, // LATIN SMALL LETTER O WITH GRAVE 0x000000F3, // LATIN SMALL LETTER O WITH ACUTE 0x000000F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX 0x00000151, // LATIN SMALL LETTER O WITH DOUBLE ACUTE 0x000000F6, // LATIN SMALL LETTER O WITH DIAERESIS 0x0000015B, // LATIN SMALL LETTER S WITH ACUTE 0x00000171, // LATIN SMALL LETTER U WITH DOUBLE ACUTE 0x000000F9, // LATIN SMALL LETTER U WITH GRAVE 0x000000FA, // LATIN SMALL LETTER U WITH ACUTE 0x000000FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX 0x000000FC, // LATIN SMALL LETTER U WITH DIAERESIS 0x00000119, // LATIN SMALL LETTER E WITH OGONEK 0x0000021B, // LATIN SMALL LETTER T WITH COMMA BELOW 0x000000FF // LATIN SMALL LETTER Y WITH DIAERESIS }; }