/* !!! WARNING !!! DON'T CHANGE ORDER OF CHARS */ struct codepage_map codepage_utf8cent_array[] = { { 0x000003, 178 }, // max size , char count { 0x00003f, 0 }, { 0x00003f, 0 }, { 0x00003f, 0 }, { 0x00003f, 0 }, { 0x00003f, 0 }, { 0x00c280, 1 }, { 0x00c281, 2 }, { 0x00c282, 3 }, { 0x00c283, 4 }, { 0x00c284, 5 }, { 0x00c285, 6 }, { 0x00c286, 7 }, { 0x00c287, 8 }, { 0x00c288, 9 }, { 0x00c289, 10 }, { 0x00c28a, 11 }, { 0x00c28b, 12 }, { 0x00c28c, 13 }, { 0x00c28d, 14 }, { 0x00c28e, 15 }, { 0x00c28f, 16 }, { 0x00c290, 17 }, { 0x00c291, 18 }, { 0x00c292, 19 }, { 0x00c293, 20 }, { 0x00c294, 21 }, { 0x00c295, 22 }, { 0x00c296, 23 }, { 0x00c297, 24 }, { 0x00c298, 25 }, { 0x00c299, 26 }, { 0x00c29a, 27 }, { 0x00c29b, 28 }, { 0x00c29c, 29 }, { 0x00c29d, 30 }, { 0x00c29e, 31 }, { 0x00c29f, 32 }, { 0x00c2a0, 33 }, { 0x00c2a4, 34 }, { 0x00c2a6, 35 }, { 0x00c2a7, 36 }, { 0x00c2a8, 37 }, { 0x00c2a9, 38 }, { 0x00c2ab, 39 }, { 0x00c2ad, 40 }, { 0x00c2ad, 41 }, { 0x00c2ae, 42 }, { 0x00c2b0, 43 }, { 0x00c2b1, 44 }, { 0x00c2b4, 45 }, { 0x00c2b5, 46 }, { 0x00c2b6, 47 }, { 0x00c2b7, 48 }, { 0x00c2b8, 49 }, { 0x00c2bb, 50 }, { 0x00c380, 51 }, { 0x00c381, 52 }, { 0x00c382, 53 }, { 0x00c384, 54 }, { 0x00c386, 55 }, { 0x00c387, 56 }, { 0x00c388, 57 }, { 0x00c389, 58 }, { 0x00c38a, 59 }, { 0x00c38b, 60 }, { 0x00c38c, 61 }, { 0x00c38d, 62 }, { 0x00c38e, 63 }, { 0x00c38f, 64 }, { 0x00c392, 65 }, { 0x00c393, 66 }, { 0x00c394, 67 }, { 0x00c396, 68 }, { 0x00c397, 69 }, { 0x00c399, 70 }, { 0x00c39a, 71 }, { 0x00c39b, 72 }, { 0x00c39c, 73 }, { 0x00c39d, 74 }, { 0x00c39f, 75 }, { 0x00c3a0, 76 }, { 0x00c3a1, 77 }, { 0x00c3a2, 78 }, { 0x00c3a4, 79 }, { 0x00c3a6, 80 }, { 0x00c3a7, 81 }, { 0x00c3a8, 82 }, { 0x00c3a9, 83 }, { 0x00c3aa, 84 }, { 0x00c3ab, 85 }, { 0x00c3ac, 86 }, { 0x00c3ad, 87 }, { 0x00c3ae, 88 }, { 0x00c3af, 89 }, { 0x00c3b2, 90 }, { 0x00c3b3, 91 }, { 0x00c3b4, 92 }, { 0x00c3b6, 93 }, { 0x00c3b7, 94 }, { 0x00c3b9, 95 }, { 0x00c3ba, 96 }, { 0x00c3bb, 97 }, { 0x00c3bc, 98 }, { 0x00c3bd, 99 }, { 0x00c3bf, 100 }, { 0x00c482, 101 }, { 0x00c483, 102 }, { 0x00c484, 103 }, { 0x00c485, 104 }, { 0x00c486, 105 }, { 0x00c487, 106 }, { 0x00c48c, 107 }, { 0x00c48d, 108 }, { 0x00c48e, 109 }, { 0x00c48f, 110 }, { 0x00c490, 111 }, { 0x00c491, 112 }, { 0x00c498, 113 }, { 0x00c499, 114 }, { 0x00c49a, 115 }, { 0x00c49b, 116 }, { 0x00c4b9, 117 }, { 0x00c4ba, 118 }, { 0x00c4bd, 119 }, { 0x00c4be, 120 }, { 0x00c581, 121 }, { 0x00c582, 122 }, { 0x00c583, 123 }, { 0x00c584, 124 }, { 0x00c587, 125 }, { 0x00c588, 126 }, { 0x00c590, 127 }, { 0x00c591, 128 }, { 0x00c592, 129 }, { 0x00c593, 130 }, { 0x00c594, 131 }, { 0x00c595, 132 }, { 0x00c598, 133 }, { 0x00c599, 134 }, { 0x00c59a, 135 }, { 0x00c59b, 136 }, { 0x00c59e, 137 }, { 0x00c59f, 138 }, { 0x00c5a0, 139 }, { 0x00c5a1, 140 }, { 0x00c5a2, 141 }, { 0x00c5a3, 142 }, { 0x00c5a4, 143 }, { 0x00c5a5, 144 }, { 0x00c5ae, 145 }, { 0x00c5af, 146 }, { 0x00c5b0, 147 }, { 0x00c5b1, 148 }, { 0x00c5b8, 149 }, { 0x00c5b9, 150 }, { 0x00c5ba, 151 }, { 0x00c5bb, 152 }, { 0x00c5bc, 153 }, { 0x00c5bd, 154 }, { 0x00c5be, 155 }, { 0x00cb87, 156 }, { 0x00cb98, 157 }, { 0x00cb99, 158 }, { 0x00c89a, 159 }, { 0x00cb9b, 160 }, { 0x00cb9d, 161 }, { 0xe28093, 162 }, { 0xe28094, 163 }, { 0xe28098, 164 }, { 0xe28099, 165 }, { 0xe2809a, 166 }, { 0xe2809c, 167 }, { 0xe2809d, 168 }, { 0xe2809e, 169 }, { 0xe280a0, 170 }, { 0xe280a1, 171 }, { 0xe280a2, 172 }, { 0xe280a6, 173 }, { 0xe280b0, 174 }, { 0xe280b9, 175 }, { 0xe280ba, 176 }, { 0xe282ac, 177 }, { 0xe284a2, 178 }, { 0x000000, 0 } }; struct codepage_map codepage_iso2_array[] = { { 0x0001, 128 }, // max size , char count for control { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x0080, 1 }, { 0x0081, 2 }, { 0x0082, 3 }, { 0x0083, 4 }, { 0x0084, 5 }, { 0x0085, 6 }, { 0x0086, 7 }, { 0x0087, 8 }, { 0x0088, 9 }, { 0x0089, 10 }, { 0x008a, 11 }, { 0x008b, 12 }, { 0x008c, 13 }, { 0x008d, 14 }, { 0x008e, 15 }, { 0x008f, 16 }, { 0x0090, 17 }, { 0x0091, 18 }, { 0x0092, 19 }, { 0x0093, 20 }, { 0x0094, 21 }, { 0x0095, 22 }, { 0x0096, 23 }, { 0x0097, 24 }, { 0x0098, 25 }, { 0x0099, 26 }, { 0x009a, 27 }, { 0x009b, 28 }, { 0x009c, 29 }, { 0x009d, 30 }, { 0x009e, 31 }, { 0x009f, 32 }, { 0x00a0, 33 }, { 0x00a1, 34 }, { 0x00a2, 35 }, { 0x00a3, 36 }, { 0x00a4, 37 }, { 0x00a5, 38 }, { 0x00a6, 39 }, { 0x00a7, 40 }, { 0x00a8, 41 }, { 0x00a9, 42 }, { 0x00aa, 43 }, { 0x00ab, 44 }, { 0x00ac, 45 }, { 0x00ad, 46 }, { 0x00ae, 47 }, { 0x00af, 48 }, { 0x00b0, 49 }, { 0x00b1, 50 }, { 0x00b2, 51 }, { 0x00b3, 52 }, { 0x00b4, 53 }, { 0x00b5, 54 }, { 0x00b6, 55 }, { 0x00b7, 56 }, { 0x00b8, 57 }, { 0x00b9, 58 }, { 0x00ba, 59 }, { 0x00bb, 60 }, { 0x00bc, 61 }, { 0x00bd, 62 }, { 0x00be, 63 }, { 0x00bf, 64 }, { 0x00c0, 65 }, { 0x00c1, 66 }, { 0x00c2, 67 }, { 0x00c3, 68 }, { 0x00c4, 69 }, { 0x00c5, 70 }, { 0x00c6, 71 }, { 0x00c7, 72 }, { 0x00c8, 73 }, { 0x00c9, 74 }, { 0x00ca, 75 }, { 0x00cb, 76 }, { 0x00cc, 77 }, { 0x00cd, 78 }, { 0x00ce, 79 }, { 0x00cf, 80 }, { 0x00d0, 81 }, { 0x00d1, 82 }, { 0x00d2, 83 }, { 0x00d3, 84 }, { 0x00d4, 85 }, { 0x00d5, 86 }, { 0x00d6, 87 }, { 0x00d7, 88 }, { 0x00d8, 89 }, { 0x00d9, 90 }, { 0x00da, 91 }, { 0x00db, 92 }, { 0x00dc, 93 }, { 0x00dd, 94 }, { 0x00de, 95 }, { 0x00df, 96 }, { 0x00e0, 97 }, { 0x00e1, 98 }, { 0x00e2, 99 }, { 0x00e3, 100 }, { 0x00e4, 101 }, { 0x00e5, 102 }, { 0x00e6, 103 }, { 0x00e7, 104 }, { 0x00e8, 105 }, { 0x00e9, 106 }, { 0x00ea, 107 }, { 0x00eb, 108 }, { 0x00ec, 109 }, { 0x00ed, 110 }, { 0x00ee, 111 }, { 0x00ef, 112 }, { 0x00f0, 113 }, { 0x00f1, 114 }, { 0x00f2, 115 }, { 0x00f3, 116 }, { 0x00f4, 117 }, { 0x00f5, 118 }, { 0x00f6, 119 }, { 0x00f7, 120 }, { 0x00f8, 121 }, { 0x00f9, 122 }, { 0x00fa, 123 }, { 0x00fb, 124 }, { 0x00fc, 125 }, { 0x00fd, 126 }, { 0x00fe, 127 }, { 0x00ff, 128 }, { 0x0000, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x0000, 0 } }; struct codepage_map codepage_iso16_array[] = { { 0x0001, 128 }, // max size , char count for control { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x0080, 1 }, { 0x0081, 2 }, { 0x0082, 3 }, { 0x0083, 4 }, { 0x0084, 5 }, { 0x0085, 6 }, { 0x0086, 7 }, { 0x0087, 8 }, { 0x0088, 9 }, { 0x0089, 10 }, { 0x008a, 11 }, { 0x008b, 12 }, { 0x008c, 13 }, { 0x008d, 14 }, { 0x008e, 15 }, { 0x008f, 16 }, { 0x0090, 17 }, { 0x0091, 18 }, { 0x0092, 19 }, { 0x0093, 20 }, { 0x0094, 21 }, { 0x0095, 22 }, { 0x0096, 23 }, { 0x0097, 24 }, { 0x0098, 25 }, { 0x0099, 26 }, { 0x009a, 27 }, { 0x009b, 28 }, { 0x009c, 29 }, { 0x009d, 30 }, { 0x009e, 31 }, { 0x009f, 32 }, { 0x00a0, 33 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00a7, 40 }, { 0x003f, 0 }, { 0x00a9, 42 }, { 0x00ab, 44 }, { 0x00ad, 46 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00b0, 49 }, { 0x00b1, 50 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00b6, 55 }, { 0x00b7, 56 }, { 0x003f, 0 }, { 0x00bb, 60 }, { 0x00c0, 65 }, { 0x00c1, 66 }, { 0x00c2, 67 }, { 0x00c4, 69 }, { 0x00c6, 71 }, { 0x00c7, 72 }, { 0x00c8, 73 }, { 0x00c9, 74 }, { 0x00ca, 75 }, { 0x00cb, 76 }, { 0x00cc, 77 }, { 0x00cd, 78 }, { 0x00ce, 79 }, { 0x00cf, 80 }, { 0x00d2, 83 }, { 0x00d3, 84 }, { 0x00d4, 85 }, { 0x00d6, 87 }, { 0x003f, 0 }, { 0x00d9, 90 }, { 0x00da, 91 }, { 0x00db, 92 }, { 0x00dc, 93 }, { 0x003f, 0 }, { 0x00df, 96 }, { 0x00e0, 97 }, { 0x00e1, 98 }, { 0x00e2, 99 }, { 0x00e4, 101 }, { 0x00e6, 103 }, { 0x00e7, 104 }, { 0x00e8, 105 }, { 0x00e9, 106 }, { 0x00ea, 107 }, { 0x00eb, 108 }, { 0x00ec, 109 }, { 0x00ed, 110 }, { 0x00ee, 111 }, { 0x00ef, 112 }, { 0x00f2, 115 }, { 0x00f3, 116 }, { 0x00f4, 117 }, { 0x00f6, 119 }, { 0x003f, 0 }, { 0x00f9, 122 }, { 0x00fa, 123 }, { 0x00fb, 124 }, { 0x00fc, 125 }, { 0x003f, 0 }, { 0x00ff, 128 }, { 0x00c3, 68 }, { 0x00e3, 100 }, { 0x00a1, 34 }, { 0x00a2, 35 }, { 0x00c5, 70 }, { 0x00e5, 102 }, { 0x00b2, 51 }, { 0x00b9, 58 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00d0, 81 }, { 0x00f0, 113 }, { 0x00dd, 94 }, { 0x00fd, 126 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00a3, 36 }, { 0x00b3, 52 }, { 0x00d1, 82 }, { 0x00f1, 114 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00d5, 86 }, { 0x00f5, 118 }, { 0x00bc, 61 }, { 0x00bd, 62 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00d7, 88 }, { 0x00f7, 120 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00a6, 39 }, { 0x00a8, 41 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00d8, 89 }, { 0x00f8, 121 }, { 0x00be, 63 }, { 0x00ac, 45 }, { 0x00ae, 47 }, { 0x00af, 48 }, { 0x00bf, 64 }, { 0x00b4, 53 }, { 0x00b8, 57 }, { 0x003f, 0 }, { 0x00aa, 43 }, { 0x00ba, 59 }, { 0x00de, 95 }, { 0x00fe, 127 }, { 0x00b5, 54 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00a5, 38 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00a4, 37 }, { 0x003f, 0 }, { 0x0000, 0 } }; struct codepage_map codepage_win1250_array[] = { { 0x0001, 128 }, // max size , char count for control { 0x0081, 2 }, { 0x0083, 4 }, { 0x0088, 9 }, { 0x0090, 17 }, { 0x0098, 25 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00a0, 33 }, { 0x00a4, 37 }, { 0x00a6, 39 }, { 0x00a7, 40 }, { 0x00a8, 41 }, { 0x00a9, 42 }, { 0x00ab, 44 }, { 0x00ac, 45 }, { 0x00ad, 46 }, { 0x00ae, 47 }, { 0x00b0, 49 }, { 0x00b1, 50 }, { 0x00b4, 53 }, { 0x00b5, 54 }, { 0x00b6, 55 }, { 0x00b7, 56 }, { 0x00b8, 57 }, { 0x00bb, 60 }, { 0x003f, 0 }, { 0x00c1, 66 }, { 0x00c2, 67 }, { 0x00c4, 69 }, { 0x003f, 0 }, { 0x00c7, 72 }, { 0x003f, 0 }, { 0x00c9, 74 }, { 0x003f, 0 }, { 0x00cb, 76 }, { 0x003f, 0 }, { 0x00cd, 78 }, { 0x00ce, 79 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00d3, 84 }, { 0x00d4, 85 }, { 0x00d6, 87 }, { 0x00d7, 88 }, { 0x003f, 0 }, { 0x00da, 91 }, { 0x003f, 0 }, { 0x00dc, 93 }, { 0x00dd, 94 }, { 0x00df, 96 }, { 0x003f, 0 }, { 0x00e1, 98 }, { 0x00e2, 99 }, { 0x00e4, 101 }, { 0x003f, 0 }, { 0x00e7, 104 }, { 0x003f, 0 }, { 0x00e9, 106 }, { 0x003f, 0 }, { 0x00eb, 108 }, { 0x003f, 0 }, { 0x00ed, 110 }, { 0x00ee, 111 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00f3, 116 }, { 0x00f4, 117 }, { 0x00f6, 119 }, { 0x00f7, 120 }, { 0x003f, 0 }, { 0x00fa, 123 }, { 0x003f, 0 }, { 0x00fc, 125 }, { 0x00fd, 126 }, { 0x003f, 0 }, { 0x00c3, 68 }, { 0x00e3, 100 }, { 0x00a5, 38 }, { 0x00b9, 58 }, { 0x00c6, 71 }, { 0x00e6, 103 }, { 0x00c8, 73 }, { 0x00e8, 105 }, { 0x00cf, 80 }, { 0x00ef, 112 }, { 0x00d0, 81 }, { 0x00f0, 113 }, { 0x00ca, 75 }, { 0x00ea, 107 }, { 0x00cc, 77 }, { 0x00ec, 109 }, { 0x00c5, 70 }, { 0x00e5, 102 }, { 0x00bc, 61 }, { 0x00be, 63 }, { 0x00a3, 36 }, { 0x00b3, 52 }, { 0x00d1, 82 }, { 0x00f1, 114 }, { 0x00d2, 83 }, { 0x00f2, 115 }, { 0x00d5, 86 }, { 0x00f5, 118 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00c0, 65 }, { 0x00e0, 97 }, { 0x00d8, 89 }, { 0x00f8, 121 }, { 0x008c, 13 }, { 0x009c, 29 }, { 0x00aa, 43 }, { 0x00ba, 59 }, { 0x008a, 11 }, { 0x009a, 27 }, { 0x00de, 95 }, { 0x00fe, 127 }, { 0x008d, 14 }, { 0x009d, 30 }, { 0x00d9, 90 }, { 0x00f9, 122 }, { 0x00db, 92 }, { 0x00fb, 124 }, { 0x003f, 0 }, { 0x008f, 16 }, { 0x009f, 32 }, { 0x00af, 48 }, { 0x00bf, 64 }, { 0x008e, 15 }, { 0x009e, 31 }, { 0x00a1, 34 }, { 0x00a2, 35 }, { 0x00ff, 128 }, { 0x003f, 0 }, { 0x00b2, 51 }, { 0x00bd, 62 }, { 0x0096, 23 }, { 0x0097, 24 }, { 0x0091, 18 }, { 0x0092, 19 }, { 0x0082, 3 }, { 0x0093, 20 }, { 0x0094, 21 }, { 0x0084, 5 }, { 0x0086, 7 }, { 0x0087, 8 }, { 0x0095, 22 }, { 0x0085, 6 }, { 0x0089, 10 }, { 0x008b, 12 }, { 0x009b, 28 }, { 0x0080, 1 }, { 0x0099, 26 }, { 0x0000, 0 } };