I wrote: > There's a discussion over at > http://www.postgresql.org/message-id/flat/2sa.dhu5.1hk1yrptnfy.1ml...@seznam.cz > of an apparent error in our WIN1250 -> LATIN2 conversion.
Attached is an updated patch (against today's HEAD) showing proposed changes to bring cyrillic_and_mic.c and latin2_and_win1250.c into sync with the Unicode Consortium's conversion data. In addition, I've attached the C program I used to generate the proposed new conversion tables from the Unicode/*.map files, a simple SQL script to print out the conversion behavior for the affected conversions, and a diff of the script's output between 9.5 and the proposed patch. While the changes in the WIN1250 <-> LATIN2 conversions just amount to removal of some translations that seem to have no basis in reality, the changes in the Cyrillic mappings are quite a bit more extensive. It would be good if we could get those checked by some native Russian speakers. regards, tom lane
diff --git a/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c b/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c index 1847287..539c3d3 100644 *** a/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c --- b/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c *************** static const unsigned char iso2koi[] = { *** 65,71 **** 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, --- 65,71 ---- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x9A, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, *************** static const unsigned char koi2iso[] = { *** 84,90 **** 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x00, --- 84,90 ---- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x00, *************** static const unsigned char win12512koi[] *** 105,114 **** 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, ! 0xB3, 0x00, 0xB4, 0x00, 0x00, 0x00, 0x00, 0xB7, ! 0x00, 0x00, 0xB6, 0xA6, 0xAD, 0x00, 0x00, 0x00, ! 0xA3, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x00, 0xA7, 0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE, --- 105,114 ---- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0xB3, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9E, ! 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE, *************** static const unsigned char koi2win1251[] *** 124,134 **** 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0xB8, 0xBA, 0x00, 0xB3, 0xBF, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0xA8, 0xAA, 0x00, 0xB2, 0xAF, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0xFE, 0xE0, 0xE1, 0xF6, 0xE4, 0xE5, 0xF4, 0xE3, 0xF5, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xFF, 0xF0, 0xF1, 0xF2, 0xF3, 0xE6, 0xE2, --- 124,134 ---- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xA0, 0x00, 0xB0, 0x00, 0xB7, 0x00, + 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xFE, 0xE0, 0xE1, 0xF6, 0xE4, 0xE5, 0xF4, 0xE3, 0xF5, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xFF, 0xF0, 0xF1, 0xF2, 0xF3, 0xE6, 0xE2, *************** static const unsigned char win8662koi[] *** 147,174 **** 0xFB, 0xFD, 0xFF, 0xF9, 0xF8, 0xFC, 0xE0, 0xF1, 0xC1, 0xC2, 0xD7, 0xC7, 0xC4, 0xC5, 0xD6, 0xDA, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0xD3, 0xD4, 0xD5, 0xC6, 0xC8, 0xC3, 0xDE, 0xDB, 0xDD, 0xDF, 0xD9, 0xD8, 0xDC, 0xC0, 0xD1, ! 0xB3, 0xA3, 0xB4, 0xA4, 0xB7, 0xA7, 0x00, 0x00, ! 0xB6, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; /* KOI8-R to WIN866 */ static const unsigned char koi2win866[] = { ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0xF1, 0xF3, 0x00, 0xF9, 0xF5, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0xF0, 0xF2, 0x00, 0xF8, 0xF4, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0xEE, 0xA0, 0xA1, 0xE6, 0xA4, 0xA5, 0xE4, 0xA3, 0xE5, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xEF, 0xE0, 0xE1, 0xE2, 0xE3, 0xA6, 0xA2, --- 147,174 ---- 0xFB, 0xFD, 0xFF, 0xF9, 0xF8, 0xFC, 0xE0, 0xF1, 0xC1, 0xC2, 0xD7, 0xC7, 0xC4, 0xC5, 0xD6, 0xDA, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, ! 0x90, 0x91, 0x92, 0x81, 0x87, 0xB2, 0xB4, 0xA7, ! 0xA6, 0xB5, 0xA1, 0xA8, 0xAE, 0xAD, 0xAC, 0x83, ! 0x84, 0x89, 0x88, 0x86, 0x80, 0x8A, 0xAF, 0xB0, ! 0xAB, 0xA5, 0xBB, 0xB8, 0xB1, 0xA0, 0xBE, 0xB9, ! 0xBA, 0xB6, 0xB7, 0xAA, 0xA9, 0xA2, 0xA4, 0xBD, ! 0xBC, 0x85, 0x82, 0x8D, 0x8C, 0x8E, 0x8F, 0x8B, 0xD2, 0xD3, 0xD4, 0xD5, 0xC6, 0xC8, 0xC3, 0xDE, 0xDB, 0xDD, 0xDF, 0xD9, 0xD8, 0xDC, 0xC0, 0xD1, ! 0xB3, 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x9C, 0x95, 0x9E, 0x96, 0x00, 0x00, 0x94, 0x9A }; /* KOI8-R to WIN866 */ static const unsigned char koi2win866[] = { ! 0xC4, 0xB3, 0xDA, 0xBF, 0xC0, 0xD9, 0xC3, 0xB4, ! 0xC2, 0xC1, 0xC5, 0xDF, 0xDC, 0xDB, 0xDD, 0xDE, ! 0xB0, 0xB1, 0xB2, 0x00, 0xFE, 0xF9, 0xFB, 0x00, ! 0x00, 0x00, 0xFF, 0x00, 0xF8, 0x00, 0xFA, 0x00, ! 0xCD, 0xBA, 0xD5, 0xF1, 0xD6, 0xC9, 0xB8, 0xB7, ! 0xBB, 0xD4, 0xD3, 0xC8, 0xBE, 0xBD, 0xBC, 0xC6, ! 0xC7, 0xCC, 0xB5, 0xF0, 0xB6, 0xB9, 0xD1, 0xD2, ! 0xCB, 0xCF, 0xD0, 0xCA, 0xD8, 0xD7, 0xCE, 0x00, 0xEE, 0xA0, 0xA1, 0xE6, 0xA4, 0xA5, 0xE4, 0xA3, 0xE5, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xEF, 0xE0, 0xE1, 0xE2, 0xE3, 0xA6, 0xA2, *************** static const unsigned char win8662win125 *** 188,202 **** 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, ! 0xA8, 0xB8, 0xAA, 0xBA, 0xAF, 0xBF, 0x00, 0x00, ! 0xB2, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; /* WIN1251 to WIN866 */ --- 188,202 ---- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, ! 0xA8, 0xB8, 0xAA, 0xBA, 0xAF, 0xBF, 0xA1, 0xA2, ! 0xB0, 0x00, 0xB7, 0x00, 0xB9, 0xA4, 0x00, 0xA0 }; /* WIN1251 to WIN866 */ *************** static const unsigned char win12512win86 *** 205,214 **** 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0xF0, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x00, 0xF4, ! 0x00, 0x00, 0xF8, 0xF9, 0xAD, 0x00, 0x00, 0x00, ! 0xF1, 0x00, 0xF3, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, --- 205,214 ---- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0xFF, 0xF6, 0xF7, 0x00, 0xFD, 0x00, 0x00, 0x00, 0xF0, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x00, 0xF4, ! 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, ! 0xF1, 0xFC, 0xF3, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, *************** static const unsigned char iso2win1251[] *** 225,232 **** 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, --- 225,232 ---- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0xA0, 0xA8, 0x80, 0x81, 0xAA, 0xBD, 0xB2, 0xAF, ! 0xA3, 0x8A, 0x8C, 0x8E, 0x8D, 0xAD, 0xA1, 0x8F, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, *************** static const unsigned char iso2win1251[] *** 235,254 **** 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, ! 0x00, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; /* WIN1251 to ISO-8859-5 */ static const unsigned char win12512iso[] = { ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, --- 235,254 ---- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, ! 0xB9, 0xB8, 0x90, 0x83, 0xBA, 0xBE, 0xB3, 0xBF, ! 0xBC, 0x9A, 0x9C, 0x9E, 0x9D, 0xA7, 0xA2, 0x9F }; /* WIN1251 to ISO-8859-5 */ static const unsigned char win12512iso[] = { ! 0xA2, 0xA3, 0x00, 0xF3, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0xA9, 0x00, 0xAA, 0xAC, 0xAB, 0xAF, ! 0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0xF9, 0x00, 0xFA, 0xFC, 0xFB, 0xFF, ! 0xA0, 0xAE, 0xFE, 0xA8, 0x00, 0x00, 0x00, 0xFD, ! 0xA1, 0x00, 0xA4, 0x00, 0x00, 0xAD, 0x00, 0xA7, ! 0x00, 0x00, 0xA6, 0xF6, 0x00, 0x00, 0x00, 0x00, ! 0xF1, 0xF0, 0xF4, 0x00, 0xF8, 0xA5, 0xF5, 0xF7, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, *************** static const unsigned char iso2win866[] *** 265,272 **** 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, --- 265,272 ---- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0xFF, 0xF0, 0x00, 0x00, 0xF2, 0x00, 0x00, 0xF4, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, *************** static const unsigned char iso2win866[] *** 275,282 **** 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, ! 0x00, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; /* WIN866 to ISO-8859-5 */ --- 275,282 ---- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, ! 0xFC, 0xF1, 0x00, 0x00, 0xF3, 0x00, 0x00, 0xF5, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x00 }; /* WIN866 to ISO-8859-5 */ *************** static const unsigned char win8662iso[] *** 295,302 **** 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, ! 0xA1, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; --- 295,302 ---- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, ! 0xA1, 0xF1, 0xA4, 0xF4, 0xA7, 0xF7, 0xAE, 0xFE, ! 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xA0 }; diff --git a/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c b/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c index 1260b62..2cc223d 100644 *** a/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c --- b/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c *************** PG_FUNCTION_INFO_V1(win1250_to_latin2); *** 37,46 **** /* WIN1250 to ISO-8859-2 */ static const unsigned char win1250_2_iso88592[] = { ! 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, ! 0x88, 0x89, 0xA9, 0x8B, 0xA6, 0xAB, 0xAE, 0xAC, ! 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, ! 0x98, 0x99, 0xB9, 0x9B, 0xB6, 0xBB, 0xBE, 0xBC, 0xA0, 0xB7, 0xA2, 0xA3, 0xA4, 0xA1, 0x00, 0xA7, 0xA8, 0x00, 0xAA, 0x00, 0x00, 0xAD, 0x00, 0xAF, 0xB0, 0x00, 0xB2, 0xB3, 0xB4, 0x00, 0x00, 0x00, --- 37,46 ---- /* WIN1250 to ISO-8859-2 */ static const unsigned char win1250_2_iso88592[] = { ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0xA9, 0x00, 0xA6, 0xAB, 0xAE, 0xAC, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0xB9, 0x00, 0xB6, 0xBB, 0xBE, 0xBC, 0xA0, 0xB7, 0xA2, 0xA3, 0xA4, 0xA1, 0x00, 0xA7, 0xA8, 0x00, 0xAA, 0x00, 0x00, 0xAD, 0x00, 0xAF, 0xB0, 0x00, 0xB2, 0xB3, 0xB4, 0x00, 0x00, 0x00, *************** static const unsigned char win1250_2_iso *** 57,66 **** /* ISO-8859-2 to WIN1250 */ static const unsigned char iso88592_2_win1250[] = { ! 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, ! 0x88, 0x89, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x00, ! 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, ! 0x98, 0x99, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xA5, 0xA2, 0xA3, 0xA4, 0xBC, 0x8C, 0xA7, 0xA8, 0x8A, 0xAA, 0x8D, 0x8F, 0xAD, 0x8E, 0xAF, 0xB0, 0xB9, 0xB2, 0xB3, 0xB4, 0xBE, 0x9C, 0xA1, --- 57,66 ---- /* ISO-8859-2 to WIN1250 */ static const unsigned char iso88592_2_win1250[] = { ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xA5, 0xA2, 0xA3, 0xA4, 0xBC, 0x8C, 0xA7, 0xA8, 0x8A, 0xAA, 0x8D, 0x8F, 0xAD, 0x8E, 0xAF, 0xB0, 0xB9, 0xB2, 0xB3, 0xB4, 0xBE, 0x9C, 0xA1,
#include "c.h" #include "mb/pg_wchar.h" #include "iso8859_2_to_utf8.map" #include "iso8859_5_to_utf8.map" #include "win1250_to_utf8.map" #include "win1251_to_utf8.map" #include "win866_to_utf8.map" #include "koi8r_to_utf8.map" typedef struct { const char *enname1; const pg_local_to_utf *map1; /* to UTF8 map name */ int size1; /* size of map1 */ const char *enname2; const pg_local_to_utf *map2; /* to UTF8 map name */ int size2; /* size of map2 */ const char *tabname; } pg_conv_map; static const pg_conv_map maps[] = { { "WIN1250", LUmapWIN1250, lengthof(LUmapWIN1250), "ISO-8859-2", LUmapISO8859_2, lengthof(LUmapISO8859_2), "win1250_2_iso88592" }, { "ISO-8859-2", LUmapISO8859_2, lengthof(LUmapISO8859_2), "WIN1250", LUmapWIN1250, lengthof(LUmapWIN1250), "iso88592_2_win1250" }, { "ISO-8859-5", LUmapISO8859_5, lengthof(LUmapISO8859_5), "KOI8-R", LUmapKOI8R, lengthof(LUmapKOI8R), "iso2koi" }, { "KOI8-R", LUmapKOI8R, lengthof(LUmapKOI8R), "ISO-8859-5", LUmapISO8859_5, lengthof(LUmapISO8859_5), "koi2iso" }, { "WIN1251", LUmapWIN1251, lengthof(LUmapWIN1251), "KOI8-R", LUmapKOI8R, lengthof(LUmapKOI8R), "win12512koi" }, { "KOI8-R", LUmapKOI8R, lengthof(LUmapKOI8R), "WIN1251", LUmapWIN1251, lengthof(LUmapWIN1251), "koi2win1251" }, { "WIN866", LUmapWIN866, lengthof(LUmapWIN866), "KOI8-R", LUmapKOI8R, lengthof(LUmapKOI8R), "win8662koi" }, { "KOI8-R", LUmapKOI8R, lengthof(LUmapKOI8R), "WIN866", LUmapWIN866, lengthof(LUmapWIN866), "koi2win866" }, { "WIN866", LUmapWIN866, lengthof(LUmapWIN866), "WIN1251", LUmapWIN1251, lengthof(LUmapWIN1251), "win8662win1251" }, { "WIN1251", LUmapWIN1251, lengthof(LUmapWIN1251), "WIN866", LUmapWIN866, lengthof(LUmapWIN866), "win12512win866" }, { "ISO-8859-5", LUmapISO8859_5, lengthof(LUmapISO8859_5), "WIN1251", LUmapWIN1251, lengthof(LUmapWIN1251), "iso2win1251" }, { "WIN1251", LUmapWIN1251, lengthof(LUmapWIN1251), "ISO-8859-5", LUmapISO8859_5, lengthof(LUmapISO8859_5), "win12512iso" }, { "ISO-8859-5", LUmapISO8859_5, lengthof(LUmapISO8859_5), "WIN866", LUmapWIN866, lengthof(LUmapWIN866), "iso2win866" }, { "WIN866", LUmapWIN866, lengthof(LUmapWIN866), "ISO-8859-5", LUmapISO8859_5, lengthof(LUmapISO8859_5), "win8662iso" }, }; static void domap(const pg_conv_map *info) { uint32 c; printf("/* %s to %s */\n", info->enname1, info->enname2); printf("static const unsigned char %s[] = {\n", info->tabname); for (c = 0x80; c <= 0xff; c++) { uint32 u = 0; uint32 c2 = 0; int i; for (i = 0; i < info->size1; i++) { if (info->map1[i].code == c) { u = info->map1[i].utf; break; } } if (u != 0) { for (i = 0; i < info->size2; i++) { if (info->map2[i].utf == u) { c2 = info->map2[i].code; break; } } } #if 0 if (c2) printf("0x%02x maps to 0x%02x via U+%04X\n", c, c2, u); else printf("0x%02x has no equivalent\n", c); #endif if (c % 8 == 0) printf("\t"); printf("0x%02X", c2); if (c == 0xff) printf("\n"); else if (c % 8 == 7) printf(",\n"); else printf(", "); } printf("};\n\n"); } int main(int argc, char **argv) { int i; for (i = 0; i < lengthof(maps); i++) domap(maps + i); return 0; }
set bytea_output = hex; \pset tuples_only on \pset format unaligned create or replace function check_conv( src_encoding name, dest_encoding name, mule_id int ) returns setof text strict language plpgsql as $$ declare printerrs bool := false; -- "true" prints error message text too, which is not too helpful when -- comparing 9.5 against HEAD, because of bogus "MULE_INTERNAL" references c int; cbytea bytea; trbytea bytea; trback bytea; errtext text; begin for c in 0..255 loop if c >= 128 and src_encoding = 'MULE_INTERNAL' then cbytea := set_byte(' ', 0, mule_id); cbytea := set_byte(cbytea, 1, c); else cbytea := set_byte(' ', 0, c); end if; begin trbytea = convert(cbytea, src_encoding, dest_encoding); errtext := ''; exception when sqlstate '22P05' or sqlstate '22021' then GET STACKED DIAGNOSTICS errtext = MESSAGE_TEXT; trbytea := '\x00'; end; if trbytea <> '\x00' then return next 'convert '::text || cbytea || ' from ' || src_encoding || ' to ' || dest_encoding || ' produced ' || trbytea; else if printerrs then return next 'convert '::text || cbytea || ' from ' || src_encoding || ' to ' || dest_encoding || ' failed: ' || errtext; else return next 'convert '::text || cbytea || ' from ' || src_encoding || ' to ' || dest_encoding || ' failed'; end if; end if; if trbytea <> '\x00' then trback = convert(trbytea, dest_encoding, src_encoding); if trback <> cbytea then return next 'convert '::text || cbytea || ' from ' || src_encoding || ' to ' || dest_encoding || ' reverse conversion produced ' || trback; end if; end if; end loop; end $$; select check_conv('KOI8-R', 'MULE_INTERNAL', 139); select check_conv('MULE_INTERNAL', 'KOI8-R', 139); select check_conv('ISO-8859-5', 'MULE_INTERNAL', 139); select check_conv('MULE_INTERNAL', 'ISO-8859-5', 139); select check_conv('WIN1251', 'MULE_INTERNAL', 139); select check_conv('MULE_INTERNAL', 'WIN1251', 139); select check_conv('WIN866', 'MULE_INTERNAL', 139); select check_conv('MULE_INTERNAL', 'WIN866', 139); select check_conv('ISO-8859-5', 'KOI8-R', 139); select check_conv('KOI8-R', 'ISO-8859-5', 139); select check_conv('WIN1251', 'KOI8-R', 139); select check_conv('KOI8-R', 'WIN1251', 139); select check_conv('WIN866', 'KOI8-R', 139); select check_conv('KOI8-R', 'WIN866', 139); select check_conv('WIN866', 'WIN1251', 139); select check_conv('WIN1251', 'WIN866', 139); select check_conv('ISO-8859-5', 'WIN1251', 139); select check_conv('WIN1251', 'ISO-8859-5', 139); select check_conv('ISO-8859-5', 'WIN866', 139); select check_conv('WIN866', 'ISO-8859-5', 139); select check_conv('WIN1250', 'ISO-8859-2', 130); select check_conv('ISO-8859-2', 'WIN1250', 130);
--- check95.out 2015-11-28 15:06:34.384735691 -0500 +++ check.out 2015-11-28 15:06:37.603812190 -0500 @@ -674,7 +674,7 @@ convert \x9d from ISO-8859-5 to MULE_INTERNAL failed convert \x9e from ISO-8859-5 to MULE_INTERNAL failed convert \x9f from ISO-8859-5 to MULE_INTERNAL failed -convert \xa0 from ISO-8859-5 to MULE_INTERNAL failed +convert \xa0 from ISO-8859-5 to MULE_INTERNAL produced \x8b9a convert \xa1 from ISO-8859-5 to MULE_INTERNAL produced \x8bb3 convert \xa2 from ISO-8859-5 to MULE_INTERNAL failed convert \xa3 from ISO-8859-5 to MULE_INTERNAL failed @@ -924,7 +924,7 @@ convert \x8b97 from MULE_INTERNAL to ISO-8859-5 failed convert \x8b98 from MULE_INTERNAL to ISO-8859-5 failed convert \x8b99 from MULE_INTERNAL to ISO-8859-5 failed -convert \x8b9a from MULE_INTERNAL to ISO-8859-5 failed +convert \x8b9a from MULE_INTERNAL to ISO-8859-5 produced \xa0 convert \x8b9b from MULE_INTERNAL to ISO-8859-5 failed convert \x8b9c from MULE_INTERNAL to ISO-8859-5 failed convert \x8b9d from MULE_INTERNAL to ISO-8859-5 failed @@ -1186,38 +1186,38 @@ convert \x9d from WIN1251 to MULE_INTERNAL failed convert \x9e from WIN1251 to MULE_INTERNAL failed convert \x9f from WIN1251 to MULE_INTERNAL failed -convert \xa0 from WIN1251 to MULE_INTERNAL failed +convert \xa0 from WIN1251 to MULE_INTERNAL produced \x8b9a convert \xa1 from WIN1251 to MULE_INTERNAL failed convert \xa2 from WIN1251 to MULE_INTERNAL failed convert \xa3 from WIN1251 to MULE_INTERNAL failed convert \xa4 from WIN1251 to MULE_INTERNAL failed -convert \xa5 from WIN1251 to MULE_INTERNAL produced \x8bbd +convert \xa5 from WIN1251 to MULE_INTERNAL failed convert \xa6 from WIN1251 to MULE_INTERNAL failed convert \xa7 from WIN1251 to MULE_INTERNAL failed convert \xa8 from WIN1251 to MULE_INTERNAL produced \x8bb3 -convert \xa9 from WIN1251 to MULE_INTERNAL failed -convert \xaa from WIN1251 to MULE_INTERNAL produced \x8bb4 +convert \xa9 from WIN1251 to MULE_INTERNAL produced \x8bbf +convert \xaa from WIN1251 to MULE_INTERNAL failed convert \xab from WIN1251 to MULE_INTERNAL failed convert \xac from WIN1251 to MULE_INTERNAL failed convert \xad from WIN1251 to MULE_INTERNAL failed convert \xae from WIN1251 to MULE_INTERNAL failed -convert \xaf from WIN1251 to MULE_INTERNAL produced \x8bb7 -convert \xb0 from WIN1251 to MULE_INTERNAL failed +convert \xaf from WIN1251 to MULE_INTERNAL failed +convert \xb0 from WIN1251 to MULE_INTERNAL produced \x8b9c convert \xb1 from WIN1251 to MULE_INTERNAL failed -convert \xb2 from WIN1251 to MULE_INTERNAL produced \x8bb6 -convert \xb3 from WIN1251 to MULE_INTERNAL produced \x8ba6 -convert \xb4 from WIN1251 to MULE_INTERNAL produced \x8bad +convert \xb2 from WIN1251 to MULE_INTERNAL failed +convert \xb3 from WIN1251 to MULE_INTERNAL failed +convert \xb4 from WIN1251 to MULE_INTERNAL failed convert \xb5 from WIN1251 to MULE_INTERNAL failed convert \xb6 from WIN1251 to MULE_INTERNAL failed -convert \xb7 from WIN1251 to MULE_INTERNAL failed +convert \xb7 from WIN1251 to MULE_INTERNAL produced \x8b9e convert \xb8 from WIN1251 to MULE_INTERNAL produced \x8ba3 convert \xb9 from WIN1251 to MULE_INTERNAL failed -convert \xba from WIN1251 to MULE_INTERNAL produced \x8ba4 +convert \xba from WIN1251 to MULE_INTERNAL failed convert \xbb from WIN1251 to MULE_INTERNAL failed convert \xbc from WIN1251 to MULE_INTERNAL failed convert \xbd from WIN1251 to MULE_INTERNAL failed convert \xbe from WIN1251 to MULE_INTERNAL failed -convert \xbf from WIN1251 to MULE_INTERNAL produced \x8ba7 +convert \xbf from WIN1251 to MULE_INTERNAL failed convert \xc0 from WIN1251 to MULE_INTERNAL produced \x8be1 convert \xc1 from WIN1251 to MULE_INTERNAL produced \x8be2 convert \xc2 from WIN1251 to MULE_INTERNAL produced \x8bf7 @@ -1436,44 +1436,44 @@ convert \x8b97 from MULE_INTERNAL to WIN1251 failed convert \x8b98 from MULE_INTERNAL to WIN1251 failed convert \x8b99 from MULE_INTERNAL to WIN1251 failed -convert \x8b9a from MULE_INTERNAL to WIN1251 failed +convert \x8b9a from MULE_INTERNAL to WIN1251 produced \xa0 convert \x8b9b from MULE_INTERNAL to WIN1251 failed -convert \x8b9c from MULE_INTERNAL to WIN1251 failed +convert \x8b9c from MULE_INTERNAL to WIN1251 produced \xb0 convert \x8b9d from MULE_INTERNAL to WIN1251 failed -convert \x8b9e from MULE_INTERNAL to WIN1251 failed +convert \x8b9e from MULE_INTERNAL to WIN1251 produced \xb7 convert \x8b9f from MULE_INTERNAL to WIN1251 failed convert \x8ba0 from MULE_INTERNAL to WIN1251 failed convert \x8ba1 from MULE_INTERNAL to WIN1251 failed convert \x8ba2 from MULE_INTERNAL to WIN1251 failed convert \x8ba3 from MULE_INTERNAL to WIN1251 produced \xb8 -convert \x8ba4 from MULE_INTERNAL to WIN1251 produced \xba +convert \x8ba4 from MULE_INTERNAL to WIN1251 failed convert \x8ba5 from MULE_INTERNAL to WIN1251 failed -convert \x8ba6 from MULE_INTERNAL to WIN1251 produced \xb3 -convert \x8ba7 from MULE_INTERNAL to WIN1251 produced \xbf +convert \x8ba6 from MULE_INTERNAL to WIN1251 failed +convert \x8ba7 from MULE_INTERNAL to WIN1251 failed convert \x8ba8 from MULE_INTERNAL to WIN1251 failed convert \x8ba9 from MULE_INTERNAL to WIN1251 failed convert \x8baa from MULE_INTERNAL to WIN1251 failed convert \x8bab from MULE_INTERNAL to WIN1251 failed convert \x8bac from MULE_INTERNAL to WIN1251 failed -convert \x8bad from MULE_INTERNAL to WIN1251 produced \xb4 +convert \x8bad from MULE_INTERNAL to WIN1251 failed convert \x8bae from MULE_INTERNAL to WIN1251 failed convert \x8baf from MULE_INTERNAL to WIN1251 failed convert \x8bb0 from MULE_INTERNAL to WIN1251 failed convert \x8bb1 from MULE_INTERNAL to WIN1251 failed convert \x8bb2 from MULE_INTERNAL to WIN1251 failed convert \x8bb3 from MULE_INTERNAL to WIN1251 produced \xa8 -convert \x8bb4 from MULE_INTERNAL to WIN1251 produced \xaa +convert \x8bb4 from MULE_INTERNAL to WIN1251 failed convert \x8bb5 from MULE_INTERNAL to WIN1251 failed -convert \x8bb6 from MULE_INTERNAL to WIN1251 produced \xb2 -convert \x8bb7 from MULE_INTERNAL to WIN1251 produced \xaf +convert \x8bb6 from MULE_INTERNAL to WIN1251 failed +convert \x8bb7 from MULE_INTERNAL to WIN1251 failed convert \x8bb8 from MULE_INTERNAL to WIN1251 failed convert \x8bb9 from MULE_INTERNAL to WIN1251 failed convert \x8bba from MULE_INTERNAL to WIN1251 failed convert \x8bbb from MULE_INTERNAL to WIN1251 failed convert \x8bbc from MULE_INTERNAL to WIN1251 failed -convert \x8bbd from MULE_INTERNAL to WIN1251 produced \xa5 +convert \x8bbd from MULE_INTERNAL to WIN1251 failed convert \x8bbe from MULE_INTERNAL to WIN1251 failed -convert \x8bbf from MULE_INTERNAL to WIN1251 failed +convert \x8bbf from MULE_INTERNAL to WIN1251 produced \xa9 convert \x8bc0 from MULE_INTERNAL to WIN1251 produced \xfe convert \x8bc1 from MULE_INTERNAL to WIN1251 produced \xe0 convert \x8bc2 from MULE_INTERNAL to WIN1251 produced \xe1 @@ -1714,54 +1714,54 @@ convert \xad from WIN866 to MULE_INTERNAL produced \x8bce convert \xae from WIN866 to MULE_INTERNAL produced \x8bcf convert \xaf from WIN866 to MULE_INTERNAL produced \x8bd0 -convert \xb0 from WIN866 to MULE_INTERNAL failed -convert \xb1 from WIN866 to MULE_INTERNAL failed -convert \xb2 from WIN866 to MULE_INTERNAL failed -convert \xb3 from WIN866 to MULE_INTERNAL failed -convert \xb4 from WIN866 to MULE_INTERNAL failed -convert \xb5 from WIN866 to MULE_INTERNAL failed -convert \xb6 from WIN866 to MULE_INTERNAL failed -convert \xb7 from WIN866 to MULE_INTERNAL failed -convert \xb8 from WIN866 to MULE_INTERNAL failed -convert \xb9 from WIN866 to MULE_INTERNAL failed -convert \xba from WIN866 to MULE_INTERNAL failed -convert \xbb from WIN866 to MULE_INTERNAL failed -convert \xbc from WIN866 to MULE_INTERNAL failed -convert \xbd from WIN866 to MULE_INTERNAL produced \x8bbd -convert \xbe from WIN866 to MULE_INTERNAL failed -convert \xbf from WIN866 to MULE_INTERNAL failed -convert \xc0 from WIN866 to MULE_INTERNAL failed -convert \xc1 from WIN866 to MULE_INTERNAL failed -convert \xc2 from WIN866 to MULE_INTERNAL failed -convert \xc3 from WIN866 to MULE_INTERNAL failed -convert \xc4 from WIN866 to MULE_INTERNAL failed -convert \xc5 from WIN866 to MULE_INTERNAL failed -convert \xc6 from WIN866 to MULE_INTERNAL failed -convert \xc7 from WIN866 to MULE_INTERNAL failed -convert \xc8 from WIN866 to MULE_INTERNAL failed -convert \xc9 from WIN866 to MULE_INTERNAL failed -convert \xca from WIN866 to MULE_INTERNAL failed -convert \xcb from WIN866 to MULE_INTERNAL failed -convert \xcc from WIN866 to MULE_INTERNAL failed -convert \xcd from WIN866 to MULE_INTERNAL failed -convert \xce from WIN866 to MULE_INTERNAL failed -convert \xcf from WIN866 to MULE_INTERNAL failed -convert \xd0 from WIN866 to MULE_INTERNAL failed -convert \xd1 from WIN866 to MULE_INTERNAL failed -convert \xd2 from WIN866 to MULE_INTERNAL failed -convert \xd3 from WIN866 to MULE_INTERNAL failed -convert \xd4 from WIN866 to MULE_INTERNAL failed -convert \xd5 from WIN866 to MULE_INTERNAL failed -convert \xd6 from WIN866 to MULE_INTERNAL failed -convert \xd7 from WIN866 to MULE_INTERNAL failed -convert \xd8 from WIN866 to MULE_INTERNAL failed -convert \xd9 from WIN866 to MULE_INTERNAL failed -convert \xda from WIN866 to MULE_INTERNAL failed -convert \xdb from WIN866 to MULE_INTERNAL failed -convert \xdc from WIN866 to MULE_INTERNAL failed -convert \xdd from WIN866 to MULE_INTERNAL failed -convert \xde from WIN866 to MULE_INTERNAL failed -convert \xdf from WIN866 to MULE_INTERNAL failed +convert \xb0 from WIN866 to MULE_INTERNAL produced \x8b90 +convert \xb1 from WIN866 to MULE_INTERNAL produced \x8b91 +convert \xb2 from WIN866 to MULE_INTERNAL produced \x8b92 +convert \xb3 from WIN866 to MULE_INTERNAL produced \x8b81 +convert \xb4 from WIN866 to MULE_INTERNAL produced \x8b87 +convert \xb5 from WIN866 to MULE_INTERNAL produced \x8bb2 +convert \xb6 from WIN866 to MULE_INTERNAL produced \x8bb4 +convert \xb7 from WIN866 to MULE_INTERNAL produced \x8ba7 +convert \xb8 from WIN866 to MULE_INTERNAL produced \x8ba6 +convert \xb9 from WIN866 to MULE_INTERNAL produced \x8bb5 +convert \xba from WIN866 to MULE_INTERNAL produced \x8ba1 +convert \xbb from WIN866 to MULE_INTERNAL produced \x8ba8 +convert \xbc from WIN866 to MULE_INTERNAL produced \x8bae +convert \xbd from WIN866 to MULE_INTERNAL produced \x8bad +convert \xbe from WIN866 to MULE_INTERNAL produced \x8bac +convert \xbf from WIN866 to MULE_INTERNAL produced \x8b83 +convert \xc0 from WIN866 to MULE_INTERNAL produced \x8b84 +convert \xc1 from WIN866 to MULE_INTERNAL produced \x8b89 +convert \xc2 from WIN866 to MULE_INTERNAL produced \x8b88 +convert \xc3 from WIN866 to MULE_INTERNAL produced \x8b86 +convert \xc4 from WIN866 to MULE_INTERNAL produced \x8b80 +convert \xc5 from WIN866 to MULE_INTERNAL produced \x8b8a +convert \xc6 from WIN866 to MULE_INTERNAL produced \x8baf +convert \xc7 from WIN866 to MULE_INTERNAL produced \x8bb0 +convert \xc8 from WIN866 to MULE_INTERNAL produced \x8bab +convert \xc9 from WIN866 to MULE_INTERNAL produced \x8ba5 +convert \xca from WIN866 to MULE_INTERNAL produced \x8bbb +convert \xcb from WIN866 to MULE_INTERNAL produced \x8bb8 +convert \xcc from WIN866 to MULE_INTERNAL produced \x8bb1 +convert \xcd from WIN866 to MULE_INTERNAL produced \x8ba0 +convert \xce from WIN866 to MULE_INTERNAL produced \x8bbe +convert \xcf from WIN866 to MULE_INTERNAL produced \x8bb9 +convert \xd0 from WIN866 to MULE_INTERNAL produced \x8bba +convert \xd1 from WIN866 to MULE_INTERNAL produced \x8bb6 +convert \xd2 from WIN866 to MULE_INTERNAL produced \x8bb7 +convert \xd3 from WIN866 to MULE_INTERNAL produced \x8baa +convert \xd4 from WIN866 to MULE_INTERNAL produced \x8ba9 +convert \xd5 from WIN866 to MULE_INTERNAL produced \x8ba2 +convert \xd6 from WIN866 to MULE_INTERNAL produced \x8ba4 +convert \xd7 from WIN866 to MULE_INTERNAL produced \x8bbd +convert \xd8 from WIN866 to MULE_INTERNAL produced \x8bbc +convert \xd9 from WIN866 to MULE_INTERNAL produced \x8b85 +convert \xda from WIN866 to MULE_INTERNAL produced \x8b82 +convert \xdb from WIN866 to MULE_INTERNAL produced \x8b8d +convert \xdc from WIN866 to MULE_INTERNAL produced \x8b8c +convert \xdd from WIN866 to MULE_INTERNAL produced \x8b8e +convert \xde from WIN866 to MULE_INTERNAL produced \x8b8f +convert \xdf from WIN866 to MULE_INTERNAL produced \x8b8b convert \xe0 from WIN866 to MULE_INTERNAL produced \x8bd2 convert \xe1 from WIN866 to MULE_INTERNAL produced \x8bd3 convert \xe2 from WIN866 to MULE_INTERNAL produced \x8bd4 @@ -1780,20 +1780,20 @@ convert \xef from WIN866 to MULE_INTERNAL produced \x8bd1 convert \xf0 from WIN866 to MULE_INTERNAL produced \x8bb3 convert \xf1 from WIN866 to MULE_INTERNAL produced \x8ba3 -convert \xf2 from WIN866 to MULE_INTERNAL produced \x8bb4 -convert \xf3 from WIN866 to MULE_INTERNAL produced \x8ba4 -convert \xf4 from WIN866 to MULE_INTERNAL produced \x8bb7 -convert \xf5 from WIN866 to MULE_INTERNAL produced \x8ba7 +convert \xf2 from WIN866 to MULE_INTERNAL failed +convert \xf3 from WIN866 to MULE_INTERNAL failed +convert \xf4 from WIN866 to MULE_INTERNAL failed +convert \xf5 from WIN866 to MULE_INTERNAL failed convert \xf6 from WIN866 to MULE_INTERNAL failed convert \xf7 from WIN866 to MULE_INTERNAL failed -convert \xf8 from WIN866 to MULE_INTERNAL produced \x8bb6 -convert \xf9 from WIN866 to MULE_INTERNAL produced \x8ba6 -convert \xfa from WIN866 to MULE_INTERNAL failed -convert \xfb from WIN866 to MULE_INTERNAL failed +convert \xf8 from WIN866 to MULE_INTERNAL produced \x8b9c +convert \xf9 from WIN866 to MULE_INTERNAL produced \x8b95 +convert \xfa from WIN866 to MULE_INTERNAL produced \x8b9e +convert \xfb from WIN866 to MULE_INTERNAL produced \x8b96 convert \xfc from WIN866 to MULE_INTERNAL failed convert \xfd from WIN866 to MULE_INTERNAL failed -convert \xfe from WIN866 to MULE_INTERNAL failed -convert \xff from WIN866 to MULE_INTERNAL failed +convert \xfe from WIN866 to MULE_INTERNAL produced \x8b94 +convert \xff from WIN866 to MULE_INTERNAL produced \x8b9a convert \x00 from MULE_INTERNAL to WIN866 failed convert \x01 from MULE_INTERNAL to WIN866 produced \x01 convert \x02 from MULE_INTERNAL to WIN866 produced \x02 @@ -1922,70 +1922,69 @@ convert \x7d from MULE_INTERNAL to WIN866 produced \x7d convert \x7e from MULE_INTERNAL to WIN866 produced \x7e convert \x7f from MULE_INTERNAL to WIN866 produced \x7f -convert \x8b80 from MULE_INTERNAL to WIN866 failed -convert \x8b81 from MULE_INTERNAL to WIN866 failed -convert \x8b82 from MULE_INTERNAL to WIN866 failed -convert \x8b83 from MULE_INTERNAL to WIN866 failed -convert \x8b84 from MULE_INTERNAL to WIN866 failed -convert \x8b85 from MULE_INTERNAL to WIN866 failed -convert \x8b86 from MULE_INTERNAL to WIN866 failed -convert \x8b87 from MULE_INTERNAL to WIN866 failed -convert \x8b88 from MULE_INTERNAL to WIN866 failed -convert \x8b89 from MULE_INTERNAL to WIN866 failed -convert \x8b8a from MULE_INTERNAL to WIN866 failed -convert \x8b8b from MULE_INTERNAL to WIN866 failed -convert \x8b8c from MULE_INTERNAL to WIN866 failed -convert \x8b8d from MULE_INTERNAL to WIN866 failed -convert \x8b8e from MULE_INTERNAL to WIN866 failed -convert \x8b8f from MULE_INTERNAL to WIN866 failed -convert \x8b90 from MULE_INTERNAL to WIN866 failed -convert \x8b91 from MULE_INTERNAL to WIN866 failed -convert \x8b92 from MULE_INTERNAL to WIN866 failed +convert \x8b80 from MULE_INTERNAL to WIN866 produced \xc4 +convert \x8b81 from MULE_INTERNAL to WIN866 produced \xb3 +convert \x8b82 from MULE_INTERNAL to WIN866 produced \xda +convert \x8b83 from MULE_INTERNAL to WIN866 produced \xbf +convert \x8b84 from MULE_INTERNAL to WIN866 produced \xc0 +convert \x8b85 from MULE_INTERNAL to WIN866 produced \xd9 +convert \x8b86 from MULE_INTERNAL to WIN866 produced \xc3 +convert \x8b87 from MULE_INTERNAL to WIN866 produced \xb4 +convert \x8b88 from MULE_INTERNAL to WIN866 produced \xc2 +convert \x8b89 from MULE_INTERNAL to WIN866 produced \xc1 +convert \x8b8a from MULE_INTERNAL to WIN866 produced \xc5 +convert \x8b8b from MULE_INTERNAL to WIN866 produced \xdf +convert \x8b8c from MULE_INTERNAL to WIN866 produced \xdc +convert \x8b8d from MULE_INTERNAL to WIN866 produced \xdb +convert \x8b8e from MULE_INTERNAL to WIN866 produced \xdd +convert \x8b8f from MULE_INTERNAL to WIN866 produced \xde +convert \x8b90 from MULE_INTERNAL to WIN866 produced \xb0 +convert \x8b91 from MULE_INTERNAL to WIN866 produced \xb1 +convert \x8b92 from MULE_INTERNAL to WIN866 produced \xb2 convert \x8b93 from MULE_INTERNAL to WIN866 failed -convert \x8b94 from MULE_INTERNAL to WIN866 failed -convert \x8b95 from MULE_INTERNAL to WIN866 failed -convert \x8b96 from MULE_INTERNAL to WIN866 failed +convert \x8b94 from MULE_INTERNAL to WIN866 produced \xfe +convert \x8b95 from MULE_INTERNAL to WIN866 produced \xf9 +convert \x8b96 from MULE_INTERNAL to WIN866 produced \xfb convert \x8b97 from MULE_INTERNAL to WIN866 failed convert \x8b98 from MULE_INTERNAL to WIN866 failed convert \x8b99 from MULE_INTERNAL to WIN866 failed -convert \x8b9a from MULE_INTERNAL to WIN866 failed +convert \x8b9a from MULE_INTERNAL to WIN866 produced \xff convert \x8b9b from MULE_INTERNAL to WIN866 failed -convert \x8b9c from MULE_INTERNAL to WIN866 failed +convert \x8b9c from MULE_INTERNAL to WIN866 produced \xf8 convert \x8b9d from MULE_INTERNAL to WIN866 failed -convert \x8b9e from MULE_INTERNAL to WIN866 failed +convert \x8b9e from MULE_INTERNAL to WIN866 produced \xfa convert \x8b9f from MULE_INTERNAL to WIN866 failed -convert \x8ba0 from MULE_INTERNAL to WIN866 failed -convert \x8ba1 from MULE_INTERNAL to WIN866 failed -convert \x8ba2 from MULE_INTERNAL to WIN866 failed +convert \x8ba0 from MULE_INTERNAL to WIN866 produced \xcd +convert \x8ba1 from MULE_INTERNAL to WIN866 produced \xba +convert \x8ba2 from MULE_INTERNAL to WIN866 produced \xd5 convert \x8ba3 from MULE_INTERNAL to WIN866 produced \xf1 -convert \x8ba4 from MULE_INTERNAL to WIN866 produced \xf3 -convert \x8ba5 from MULE_INTERNAL to WIN866 failed -convert \x8ba6 from MULE_INTERNAL to WIN866 produced \xf9 -convert \x8ba7 from MULE_INTERNAL to WIN866 produced \xf5 -convert \x8ba8 from MULE_INTERNAL to WIN866 failed -convert \x8ba9 from MULE_INTERNAL to WIN866 failed -convert \x8baa from MULE_INTERNAL to WIN866 failed -convert \x8bab from MULE_INTERNAL to WIN866 failed -convert \x8bac from MULE_INTERNAL to WIN866 failed -convert \x8bad from MULE_INTERNAL to WIN866 produced \xad -convert \x8bad from MULE_INTERNAL to WIN866 reverse conversion produced \x8bce -convert \x8bae from MULE_INTERNAL to WIN866 failed -convert \x8baf from MULE_INTERNAL to WIN866 failed -convert \x8bb0 from MULE_INTERNAL to WIN866 failed -convert \x8bb1 from MULE_INTERNAL to WIN866 failed -convert \x8bb2 from MULE_INTERNAL to WIN866 failed +convert \x8ba4 from MULE_INTERNAL to WIN866 produced \xd6 +convert \x8ba5 from MULE_INTERNAL to WIN866 produced \xc9 +convert \x8ba6 from MULE_INTERNAL to WIN866 produced \xb8 +convert \x8ba7 from MULE_INTERNAL to WIN866 produced \xb7 +convert \x8ba8 from MULE_INTERNAL to WIN866 produced \xbb +convert \x8ba9 from MULE_INTERNAL to WIN866 produced \xd4 +convert \x8baa from MULE_INTERNAL to WIN866 produced \xd3 +convert \x8bab from MULE_INTERNAL to WIN866 produced \xc8 +convert \x8bac from MULE_INTERNAL to WIN866 produced \xbe +convert \x8bad from MULE_INTERNAL to WIN866 produced \xbd +convert \x8bae from MULE_INTERNAL to WIN866 produced \xbc +convert \x8baf from MULE_INTERNAL to WIN866 produced \xc6 +convert \x8bb0 from MULE_INTERNAL to WIN866 produced \xc7 +convert \x8bb1 from MULE_INTERNAL to WIN866 produced \xcc +convert \x8bb2 from MULE_INTERNAL to WIN866 produced \xb5 convert \x8bb3 from MULE_INTERNAL to WIN866 produced \xf0 -convert \x8bb4 from MULE_INTERNAL to WIN866 produced \xf2 -convert \x8bb5 from MULE_INTERNAL to WIN866 failed -convert \x8bb6 from MULE_INTERNAL to WIN866 produced \xf8 -convert \x8bb7 from MULE_INTERNAL to WIN866 produced \xf4 -convert \x8bb8 from MULE_INTERNAL to WIN866 failed -convert \x8bb9 from MULE_INTERNAL to WIN866 failed -convert \x8bba from MULE_INTERNAL to WIN866 failed -convert \x8bbb from MULE_INTERNAL to WIN866 failed -convert \x8bbc from MULE_INTERNAL to WIN866 failed -convert \x8bbd from MULE_INTERNAL to WIN866 produced \xbd -convert \x8bbe from MULE_INTERNAL to WIN866 failed +convert \x8bb4 from MULE_INTERNAL to WIN866 produced \xb6 +convert \x8bb5 from MULE_INTERNAL to WIN866 produced \xb9 +convert \x8bb6 from MULE_INTERNAL to WIN866 produced \xd1 +convert \x8bb7 from MULE_INTERNAL to WIN866 produced \xd2 +convert \x8bb8 from MULE_INTERNAL to WIN866 produced \xcb +convert \x8bb9 from MULE_INTERNAL to WIN866 produced \xcf +convert \x8bba from MULE_INTERNAL to WIN866 produced \xd0 +convert \x8bbb from MULE_INTERNAL to WIN866 produced \xca +convert \x8bbc from MULE_INTERNAL to WIN866 produced \xd8 +convert \x8bbd from MULE_INTERNAL to WIN866 produced \xd7 +convert \x8bbe from MULE_INTERNAL to WIN866 produced \xce convert \x8bbf from MULE_INTERNAL to WIN866 failed convert \x8bc0 from MULE_INTERNAL to WIN866 produced \xee convert \x8bc1 from MULE_INTERNAL to WIN866 produced \xa0 @@ -2211,7 +2210,7 @@ convert \x9d from ISO-8859-5 to KOI8-R failed convert \x9e from ISO-8859-5 to KOI8-R failed convert \x9f from ISO-8859-5 to KOI8-R failed -convert \xa0 from ISO-8859-5 to KOI8-R failed +convert \xa0 from ISO-8859-5 to KOI8-R produced \x9a convert \xa1 from ISO-8859-5 to KOI8-R produced \xb3 convert \xa2 from ISO-8859-5 to KOI8-R failed convert \xa3 from ISO-8859-5 to KOI8-R failed @@ -2461,7 +2460,7 @@ convert \x97 from KOI8-R to ISO-8859-5 failed convert \x98 from KOI8-R to ISO-8859-5 failed convert \x99 from KOI8-R to ISO-8859-5 failed -convert \x9a from KOI8-R to ISO-8859-5 failed +convert \x9a from KOI8-R to ISO-8859-5 produced \xa0 convert \x9b from KOI8-R to ISO-8859-5 failed convert \x9c from KOI8-R to ISO-8859-5 failed convert \x9d from KOI8-R to ISO-8859-5 failed @@ -2723,38 +2722,38 @@ convert \x9d from WIN1251 to KOI8-R failed convert \x9e from WIN1251 to KOI8-R failed convert \x9f from WIN1251 to KOI8-R failed -convert \xa0 from WIN1251 to KOI8-R failed +convert \xa0 from WIN1251 to KOI8-R produced \x9a convert \xa1 from WIN1251 to KOI8-R failed convert \xa2 from WIN1251 to KOI8-R failed convert \xa3 from WIN1251 to KOI8-R failed convert \xa4 from WIN1251 to KOI8-R failed -convert \xa5 from WIN1251 to KOI8-R produced \xbd +convert \xa5 from WIN1251 to KOI8-R failed convert \xa6 from WIN1251 to KOI8-R failed convert \xa7 from WIN1251 to KOI8-R failed convert \xa8 from WIN1251 to KOI8-R produced \xb3 -convert \xa9 from WIN1251 to KOI8-R failed -convert \xaa from WIN1251 to KOI8-R produced \xb4 +convert \xa9 from WIN1251 to KOI8-R produced \xbf +convert \xaa from WIN1251 to KOI8-R failed convert \xab from WIN1251 to KOI8-R failed convert \xac from WIN1251 to KOI8-R failed convert \xad from WIN1251 to KOI8-R failed convert \xae from WIN1251 to KOI8-R failed -convert \xaf from WIN1251 to KOI8-R produced \xb7 -convert \xb0 from WIN1251 to KOI8-R failed +convert \xaf from WIN1251 to KOI8-R failed +convert \xb0 from WIN1251 to KOI8-R produced \x9c convert \xb1 from WIN1251 to KOI8-R failed -convert \xb2 from WIN1251 to KOI8-R produced \xb6 -convert \xb3 from WIN1251 to KOI8-R produced \xa6 -convert \xb4 from WIN1251 to KOI8-R produced \xad +convert \xb2 from WIN1251 to KOI8-R failed +convert \xb3 from WIN1251 to KOI8-R failed +convert \xb4 from WIN1251 to KOI8-R failed convert \xb5 from WIN1251 to KOI8-R failed convert \xb6 from WIN1251 to KOI8-R failed -convert \xb7 from WIN1251 to KOI8-R failed +convert \xb7 from WIN1251 to KOI8-R produced \x9e convert \xb8 from WIN1251 to KOI8-R produced \xa3 convert \xb9 from WIN1251 to KOI8-R failed -convert \xba from WIN1251 to KOI8-R produced \xa4 +convert \xba from WIN1251 to KOI8-R failed convert \xbb from WIN1251 to KOI8-R failed convert \xbc from WIN1251 to KOI8-R failed convert \xbd from WIN1251 to KOI8-R failed convert \xbe from WIN1251 to KOI8-R failed -convert \xbf from WIN1251 to KOI8-R produced \xa7 +convert \xbf from WIN1251 to KOI8-R failed convert \xc0 from WIN1251 to KOI8-R produced \xe1 convert \xc1 from WIN1251 to KOI8-R produced \xe2 convert \xc2 from WIN1251 to KOI8-R produced \xf7 @@ -2973,44 +2972,44 @@ convert \x97 from KOI8-R to WIN1251 failed convert \x98 from KOI8-R to WIN1251 failed convert \x99 from KOI8-R to WIN1251 failed -convert \x9a from KOI8-R to WIN1251 failed +convert \x9a from KOI8-R to WIN1251 produced \xa0 convert \x9b from KOI8-R to WIN1251 failed -convert \x9c from KOI8-R to WIN1251 failed +convert \x9c from KOI8-R to WIN1251 produced \xb0 convert \x9d from KOI8-R to WIN1251 failed -convert \x9e from KOI8-R to WIN1251 failed +convert \x9e from KOI8-R to WIN1251 produced \xb7 convert \x9f from KOI8-R to WIN1251 failed convert \xa0 from KOI8-R to WIN1251 failed convert \xa1 from KOI8-R to WIN1251 failed convert \xa2 from KOI8-R to WIN1251 failed convert \xa3 from KOI8-R to WIN1251 produced \xb8 -convert \xa4 from KOI8-R to WIN1251 produced \xba +convert \xa4 from KOI8-R to WIN1251 failed convert \xa5 from KOI8-R to WIN1251 failed -convert \xa6 from KOI8-R to WIN1251 produced \xb3 -convert \xa7 from KOI8-R to WIN1251 produced \xbf +convert \xa6 from KOI8-R to WIN1251 failed +convert \xa7 from KOI8-R to WIN1251 failed convert \xa8 from KOI8-R to WIN1251 failed convert \xa9 from KOI8-R to WIN1251 failed convert \xaa from KOI8-R to WIN1251 failed convert \xab from KOI8-R to WIN1251 failed convert \xac from KOI8-R to WIN1251 failed -convert \xad from KOI8-R to WIN1251 produced \xb4 +convert \xad from KOI8-R to WIN1251 failed convert \xae from KOI8-R to WIN1251 failed convert \xaf from KOI8-R to WIN1251 failed convert \xb0 from KOI8-R to WIN1251 failed convert \xb1 from KOI8-R to WIN1251 failed convert \xb2 from KOI8-R to WIN1251 failed convert \xb3 from KOI8-R to WIN1251 produced \xa8 -convert \xb4 from KOI8-R to WIN1251 produced \xaa +convert \xb4 from KOI8-R to WIN1251 failed convert \xb5 from KOI8-R to WIN1251 failed -convert \xb6 from KOI8-R to WIN1251 produced \xb2 -convert \xb7 from KOI8-R to WIN1251 produced \xaf +convert \xb6 from KOI8-R to WIN1251 failed +convert \xb7 from KOI8-R to WIN1251 failed convert \xb8 from KOI8-R to WIN1251 failed convert \xb9 from KOI8-R to WIN1251 failed convert \xba from KOI8-R to WIN1251 failed convert \xbb from KOI8-R to WIN1251 failed convert \xbc from KOI8-R to WIN1251 failed -convert \xbd from KOI8-R to WIN1251 produced \xa5 +convert \xbd from KOI8-R to WIN1251 failed convert \xbe from KOI8-R to WIN1251 failed -convert \xbf from KOI8-R to WIN1251 failed +convert \xbf from KOI8-R to WIN1251 produced \xa9 convert \xc0 from KOI8-R to WIN1251 produced \xfe convert \xc1 from KOI8-R to WIN1251 produced \xe0 convert \xc2 from KOI8-R to WIN1251 produced \xe1 @@ -3251,54 +3250,54 @@ convert \xad from WIN866 to KOI8-R produced \xce convert \xae from WIN866 to KOI8-R produced \xcf convert \xaf from WIN866 to KOI8-R produced \xd0 -convert \xb0 from WIN866 to KOI8-R failed -convert \xb1 from WIN866 to KOI8-R failed -convert \xb2 from WIN866 to KOI8-R failed -convert \xb3 from WIN866 to KOI8-R failed -convert \xb4 from WIN866 to KOI8-R failed -convert \xb5 from WIN866 to KOI8-R failed -convert \xb6 from WIN866 to KOI8-R failed -convert \xb7 from WIN866 to KOI8-R failed -convert \xb8 from WIN866 to KOI8-R failed -convert \xb9 from WIN866 to KOI8-R failed -convert \xba from WIN866 to KOI8-R failed -convert \xbb from WIN866 to KOI8-R failed -convert \xbc from WIN866 to KOI8-R failed -convert \xbd from WIN866 to KOI8-R produced \xbd -convert \xbe from WIN866 to KOI8-R failed -convert \xbf from WIN866 to KOI8-R failed -convert \xc0 from WIN866 to KOI8-R failed -convert \xc1 from WIN866 to KOI8-R failed -convert \xc2 from WIN866 to KOI8-R failed -convert \xc3 from WIN866 to KOI8-R failed -convert \xc4 from WIN866 to KOI8-R failed -convert \xc5 from WIN866 to KOI8-R failed -convert \xc6 from WIN866 to KOI8-R failed -convert \xc7 from WIN866 to KOI8-R failed -convert \xc8 from WIN866 to KOI8-R failed -convert \xc9 from WIN866 to KOI8-R failed -convert \xca from WIN866 to KOI8-R failed -convert \xcb from WIN866 to KOI8-R failed -convert \xcc from WIN866 to KOI8-R failed -convert \xcd from WIN866 to KOI8-R failed -convert \xce from WIN866 to KOI8-R failed -convert \xcf from WIN866 to KOI8-R failed -convert \xd0 from WIN866 to KOI8-R failed -convert \xd1 from WIN866 to KOI8-R failed -convert \xd2 from WIN866 to KOI8-R failed -convert \xd3 from WIN866 to KOI8-R failed -convert \xd4 from WIN866 to KOI8-R failed -convert \xd5 from WIN866 to KOI8-R failed -convert \xd6 from WIN866 to KOI8-R failed -convert \xd7 from WIN866 to KOI8-R failed -convert \xd8 from WIN866 to KOI8-R failed -convert \xd9 from WIN866 to KOI8-R failed -convert \xda from WIN866 to KOI8-R failed -convert \xdb from WIN866 to KOI8-R failed -convert \xdc from WIN866 to KOI8-R failed -convert \xdd from WIN866 to KOI8-R failed -convert \xde from WIN866 to KOI8-R failed -convert \xdf from WIN866 to KOI8-R failed +convert \xb0 from WIN866 to KOI8-R produced \x90 +convert \xb1 from WIN866 to KOI8-R produced \x91 +convert \xb2 from WIN866 to KOI8-R produced \x92 +convert \xb3 from WIN866 to KOI8-R produced \x81 +convert \xb4 from WIN866 to KOI8-R produced \x87 +convert \xb5 from WIN866 to KOI8-R produced \xb2 +convert \xb6 from WIN866 to KOI8-R produced \xb4 +convert \xb7 from WIN866 to KOI8-R produced \xa7 +convert \xb8 from WIN866 to KOI8-R produced \xa6 +convert \xb9 from WIN866 to KOI8-R produced \xb5 +convert \xba from WIN866 to KOI8-R produced \xa1 +convert \xbb from WIN866 to KOI8-R produced \xa8 +convert \xbc from WIN866 to KOI8-R produced \xae +convert \xbd from WIN866 to KOI8-R produced \xad +convert \xbe from WIN866 to KOI8-R produced \xac +convert \xbf from WIN866 to KOI8-R produced \x83 +convert \xc0 from WIN866 to KOI8-R produced \x84 +convert \xc1 from WIN866 to KOI8-R produced \x89 +convert \xc2 from WIN866 to KOI8-R produced \x88 +convert \xc3 from WIN866 to KOI8-R produced \x86 +convert \xc4 from WIN866 to KOI8-R produced \x80 +convert \xc5 from WIN866 to KOI8-R produced \x8a +convert \xc6 from WIN866 to KOI8-R produced \xaf +convert \xc7 from WIN866 to KOI8-R produced \xb0 +convert \xc8 from WIN866 to KOI8-R produced \xab +convert \xc9 from WIN866 to KOI8-R produced \xa5 +convert \xca from WIN866 to KOI8-R produced \xbb +convert \xcb from WIN866 to KOI8-R produced \xb8 +convert \xcc from WIN866 to KOI8-R produced \xb1 +convert \xcd from WIN866 to KOI8-R produced \xa0 +convert \xce from WIN866 to KOI8-R produced \xbe +convert \xcf from WIN866 to KOI8-R produced \xb9 +convert \xd0 from WIN866 to KOI8-R produced \xba +convert \xd1 from WIN866 to KOI8-R produced \xb6 +convert \xd2 from WIN866 to KOI8-R produced \xb7 +convert \xd3 from WIN866 to KOI8-R produced \xaa +convert \xd4 from WIN866 to KOI8-R produced \xa9 +convert \xd5 from WIN866 to KOI8-R produced \xa2 +convert \xd6 from WIN866 to KOI8-R produced \xa4 +convert \xd7 from WIN866 to KOI8-R produced \xbd +convert \xd8 from WIN866 to KOI8-R produced \xbc +convert \xd9 from WIN866 to KOI8-R produced \x85 +convert \xda from WIN866 to KOI8-R produced \x82 +convert \xdb from WIN866 to KOI8-R produced \x8d +convert \xdc from WIN866 to KOI8-R produced \x8c +convert \xdd from WIN866 to KOI8-R produced \x8e +convert \xde from WIN866 to KOI8-R produced \x8f +convert \xdf from WIN866 to KOI8-R produced \x8b convert \xe0 from WIN866 to KOI8-R produced \xd2 convert \xe1 from WIN866 to KOI8-R produced \xd3 convert \xe2 from WIN866 to KOI8-R produced \xd4 @@ -3317,20 +3316,20 @@ convert \xef from WIN866 to KOI8-R produced \xd1 convert \xf0 from WIN866 to KOI8-R produced \xb3 convert \xf1 from WIN866 to KOI8-R produced \xa3 -convert \xf2 from WIN866 to KOI8-R produced \xb4 -convert \xf3 from WIN866 to KOI8-R produced \xa4 -convert \xf4 from WIN866 to KOI8-R produced \xb7 -convert \xf5 from WIN866 to KOI8-R produced \xa7 +convert \xf2 from WIN866 to KOI8-R failed +convert \xf3 from WIN866 to KOI8-R failed +convert \xf4 from WIN866 to KOI8-R failed +convert \xf5 from WIN866 to KOI8-R failed convert \xf6 from WIN866 to KOI8-R failed convert \xf7 from WIN866 to KOI8-R failed -convert \xf8 from WIN866 to KOI8-R produced \xb6 -convert \xf9 from WIN866 to KOI8-R produced \xa6 -convert \xfa from WIN866 to KOI8-R failed -convert \xfb from WIN866 to KOI8-R failed +convert \xf8 from WIN866 to KOI8-R produced \x9c +convert \xf9 from WIN866 to KOI8-R produced \x95 +convert \xfa from WIN866 to KOI8-R produced \x9e +convert \xfb from WIN866 to KOI8-R produced \x96 convert \xfc from WIN866 to KOI8-R failed convert \xfd from WIN866 to KOI8-R failed -convert \xfe from WIN866 to KOI8-R failed -convert \xff from WIN866 to KOI8-R failed +convert \xfe from WIN866 to KOI8-R produced \x94 +convert \xff from WIN866 to KOI8-R produced \x9a convert \x00 from KOI8-R to WIN866 failed convert \x01 from KOI8-R to WIN866 produced \x01 convert \x02 from KOI8-R to WIN866 produced \x02 @@ -3459,70 +3458,69 @@ convert \x7d from KOI8-R to WIN866 produced \x7d convert \x7e from KOI8-R to WIN866 produced \x7e convert \x7f from KOI8-R to WIN866 produced \x7f -convert \x80 from KOI8-R to WIN866 failed -convert \x81 from KOI8-R to WIN866 failed -convert \x82 from KOI8-R to WIN866 failed -convert \x83 from KOI8-R to WIN866 failed -convert \x84 from KOI8-R to WIN866 failed -convert \x85 from KOI8-R to WIN866 failed -convert \x86 from KOI8-R to WIN866 failed -convert \x87 from KOI8-R to WIN866 failed -convert \x88 from KOI8-R to WIN866 failed -convert \x89 from KOI8-R to WIN866 failed -convert \x8a from KOI8-R to WIN866 failed -convert \x8b from KOI8-R to WIN866 failed -convert \x8c from KOI8-R to WIN866 failed -convert \x8d from KOI8-R to WIN866 failed -convert \x8e from KOI8-R to WIN866 failed -convert \x8f from KOI8-R to WIN866 failed -convert \x90 from KOI8-R to WIN866 failed -convert \x91 from KOI8-R to WIN866 failed -convert \x92 from KOI8-R to WIN866 failed +convert \x80 from KOI8-R to WIN866 produced \xc4 +convert \x81 from KOI8-R to WIN866 produced \xb3 +convert \x82 from KOI8-R to WIN866 produced \xda +convert \x83 from KOI8-R to WIN866 produced \xbf +convert \x84 from KOI8-R to WIN866 produced \xc0 +convert \x85 from KOI8-R to WIN866 produced \xd9 +convert \x86 from KOI8-R to WIN866 produced \xc3 +convert \x87 from KOI8-R to WIN866 produced \xb4 +convert \x88 from KOI8-R to WIN866 produced \xc2 +convert \x89 from KOI8-R to WIN866 produced \xc1 +convert \x8a from KOI8-R to WIN866 produced \xc5 +convert \x8b from KOI8-R to WIN866 produced \xdf +convert \x8c from KOI8-R to WIN866 produced \xdc +convert \x8d from KOI8-R to WIN866 produced \xdb +convert \x8e from KOI8-R to WIN866 produced \xdd +convert \x8f from KOI8-R to WIN866 produced \xde +convert \x90 from KOI8-R to WIN866 produced \xb0 +convert \x91 from KOI8-R to WIN866 produced \xb1 +convert \x92 from KOI8-R to WIN866 produced \xb2 convert \x93 from KOI8-R to WIN866 failed -convert \x94 from KOI8-R to WIN866 failed -convert \x95 from KOI8-R to WIN866 failed -convert \x96 from KOI8-R to WIN866 failed +convert \x94 from KOI8-R to WIN866 produced \xfe +convert \x95 from KOI8-R to WIN866 produced \xf9 +convert \x96 from KOI8-R to WIN866 produced \xfb convert \x97 from KOI8-R to WIN866 failed convert \x98 from KOI8-R to WIN866 failed convert \x99 from KOI8-R to WIN866 failed -convert \x9a from KOI8-R to WIN866 failed +convert \x9a from KOI8-R to WIN866 produced \xff convert \x9b from KOI8-R to WIN866 failed -convert \x9c from KOI8-R to WIN866 failed +convert \x9c from KOI8-R to WIN866 produced \xf8 convert \x9d from KOI8-R to WIN866 failed -convert \x9e from KOI8-R to WIN866 failed +convert \x9e from KOI8-R to WIN866 produced \xfa convert \x9f from KOI8-R to WIN866 failed -convert \xa0 from KOI8-R to WIN866 failed -convert \xa1 from KOI8-R to WIN866 failed -convert \xa2 from KOI8-R to WIN866 failed +convert \xa0 from KOI8-R to WIN866 produced \xcd +convert \xa1 from KOI8-R to WIN866 produced \xba +convert \xa2 from KOI8-R to WIN866 produced \xd5 convert \xa3 from KOI8-R to WIN866 produced \xf1 -convert \xa4 from KOI8-R to WIN866 produced \xf3 -convert \xa5 from KOI8-R to WIN866 failed -convert \xa6 from KOI8-R to WIN866 produced \xf9 -convert \xa7 from KOI8-R to WIN866 produced \xf5 -convert \xa8 from KOI8-R to WIN866 failed -convert \xa9 from KOI8-R to WIN866 failed -convert \xaa from KOI8-R to WIN866 failed -convert \xab from KOI8-R to WIN866 failed -convert \xac from KOI8-R to WIN866 failed -convert \xad from KOI8-R to WIN866 produced \xad -convert \xad from KOI8-R to WIN866 reverse conversion produced \xce -convert \xae from KOI8-R to WIN866 failed -convert \xaf from KOI8-R to WIN866 failed -convert \xb0 from KOI8-R to WIN866 failed -convert \xb1 from KOI8-R to WIN866 failed -convert \xb2 from KOI8-R to WIN866 failed +convert \xa4 from KOI8-R to WIN866 produced \xd6 +convert \xa5 from KOI8-R to WIN866 produced \xc9 +convert \xa6 from KOI8-R to WIN866 produced \xb8 +convert \xa7 from KOI8-R to WIN866 produced \xb7 +convert \xa8 from KOI8-R to WIN866 produced \xbb +convert \xa9 from KOI8-R to WIN866 produced \xd4 +convert \xaa from KOI8-R to WIN866 produced \xd3 +convert \xab from KOI8-R to WIN866 produced \xc8 +convert \xac from KOI8-R to WIN866 produced \xbe +convert \xad from KOI8-R to WIN866 produced \xbd +convert \xae from KOI8-R to WIN866 produced \xbc +convert \xaf from KOI8-R to WIN866 produced \xc6 +convert \xb0 from KOI8-R to WIN866 produced \xc7 +convert \xb1 from KOI8-R to WIN866 produced \xcc +convert \xb2 from KOI8-R to WIN866 produced \xb5 convert \xb3 from KOI8-R to WIN866 produced \xf0 -convert \xb4 from KOI8-R to WIN866 produced \xf2 -convert \xb5 from KOI8-R to WIN866 failed -convert \xb6 from KOI8-R to WIN866 produced \xf8 -convert \xb7 from KOI8-R to WIN866 produced \xf4 -convert \xb8 from KOI8-R to WIN866 failed -convert \xb9 from KOI8-R to WIN866 failed -convert \xba from KOI8-R to WIN866 failed -convert \xbb from KOI8-R to WIN866 failed -convert \xbc from KOI8-R to WIN866 failed -convert \xbd from KOI8-R to WIN866 produced \xbd -convert \xbe from KOI8-R to WIN866 failed +convert \xb4 from KOI8-R to WIN866 produced \xb6 +convert \xb5 from KOI8-R to WIN866 produced \xb9 +convert \xb6 from KOI8-R to WIN866 produced \xd1 +convert \xb7 from KOI8-R to WIN866 produced \xd2 +convert \xb8 from KOI8-R to WIN866 produced \xcb +convert \xb9 from KOI8-R to WIN866 produced \xcf +convert \xba from KOI8-R to WIN866 produced \xd0 +convert \xbb from KOI8-R to WIN866 produced \xca +convert \xbc from KOI8-R to WIN866 produced \xd8 +convert \xbd from KOI8-R to WIN866 produced \xd7 +convert \xbe from KOI8-R to WIN866 produced \xce convert \xbf from KOI8-R to WIN866 failed convert \xc0 from KOI8-R to WIN866 produced \xee convert \xc1 from KOI8-R to WIN866 produced \xa0 @@ -3777,7 +3775,7 @@ convert \xba from WIN866 to WIN1251 failed convert \xbb from WIN866 to WIN1251 failed convert \xbc from WIN866 to WIN1251 failed -convert \xbd from WIN866 to WIN1251 produced \xa5 +convert \xbd from WIN866 to WIN1251 failed convert \xbe from WIN866 to WIN1251 failed convert \xbf from WIN866 to WIN1251 failed convert \xc0 from WIN866 to WIN1251 failed @@ -3834,16 +3832,16 @@ convert \xf3 from WIN866 to WIN1251 produced \xba convert \xf4 from WIN866 to WIN1251 produced \xaf convert \xf5 from WIN866 to WIN1251 produced \xbf -convert \xf6 from WIN866 to WIN1251 failed -convert \xf7 from WIN866 to WIN1251 failed -convert \xf8 from WIN866 to WIN1251 produced \xb2 -convert \xf9 from WIN866 to WIN1251 produced \xb3 -convert \xfa from WIN866 to WIN1251 failed +convert \xf6 from WIN866 to WIN1251 produced \xa1 +convert \xf7 from WIN866 to WIN1251 produced \xa2 +convert \xf8 from WIN866 to WIN1251 produced \xb0 +convert \xf9 from WIN866 to WIN1251 failed +convert \xfa from WIN866 to WIN1251 produced \xb7 convert \xfb from WIN866 to WIN1251 failed -convert \xfc from WIN866 to WIN1251 failed -convert \xfd from WIN866 to WIN1251 failed +convert \xfc from WIN866 to WIN1251 produced \xb9 +convert \xfd from WIN866 to WIN1251 produced \xa4 convert \xfe from WIN866 to WIN1251 failed -convert \xff from WIN866 to WIN1251 failed +convert \xff from WIN866 to WIN1251 produced \xa0 convert \x00 from WIN1251 to WIN866 failed convert \x01 from WIN1251 to WIN866 produced \x01 convert \x02 from WIN1251 to WIN866 produced \x02 @@ -4004,12 +4002,12 @@ convert \x9d from WIN1251 to WIN866 failed convert \x9e from WIN1251 to WIN866 failed convert \x9f from WIN1251 to WIN866 failed -convert \xa0 from WIN1251 to WIN866 failed -convert \xa1 from WIN1251 to WIN866 failed -convert \xa2 from WIN1251 to WIN866 failed +convert \xa0 from WIN1251 to WIN866 produced \xff +convert \xa1 from WIN1251 to WIN866 produced \xf6 +convert \xa2 from WIN1251 to WIN866 produced \xf7 convert \xa3 from WIN1251 to WIN866 failed -convert \xa4 from WIN1251 to WIN866 failed -convert \xa5 from WIN1251 to WIN866 produced \xbd +convert \xa4 from WIN1251 to WIN866 produced \xfd +convert \xa5 from WIN1251 to WIN866 failed convert \xa6 from WIN1251 to WIN866 failed convert \xa7 from WIN1251 to WIN866 failed convert \xa8 from WIN1251 to WIN866 produced \xf0 @@ -4020,17 +4018,16 @@ convert \xad from WIN1251 to WIN866 failed convert \xae from WIN1251 to WIN866 failed convert \xaf from WIN1251 to WIN866 produced \xf4 -convert \xb0 from WIN1251 to WIN866 failed +convert \xb0 from WIN1251 to WIN866 produced \xf8 convert \xb1 from WIN1251 to WIN866 failed -convert \xb2 from WIN1251 to WIN866 produced \xf8 -convert \xb3 from WIN1251 to WIN866 produced \xf9 -convert \xb4 from WIN1251 to WIN866 produced \xad -convert \xb4 from WIN1251 to WIN866 reverse conversion produced \xed +convert \xb2 from WIN1251 to WIN866 failed +convert \xb3 from WIN1251 to WIN866 failed +convert \xb4 from WIN1251 to WIN866 failed convert \xb5 from WIN1251 to WIN866 failed convert \xb6 from WIN1251 to WIN866 failed -convert \xb7 from WIN1251 to WIN866 failed +convert \xb7 from WIN1251 to WIN866 produced \xfa convert \xb8 from WIN1251 to WIN866 produced \xf1 -convert \xb9 from WIN1251 to WIN866 failed +convert \xb9 from WIN1251 to WIN866 produced \xfc convert \xba from WIN1251 to WIN866 produced \xf3 convert \xbb from WIN1251 to WIN866 failed convert \xbc from WIN1251 to WIN866 failed @@ -4261,22 +4258,22 @@ convert \x9d from ISO-8859-5 to WIN1251 failed convert \x9e from ISO-8859-5 to WIN1251 failed convert \x9f from ISO-8859-5 to WIN1251 failed -convert \xa0 from ISO-8859-5 to WIN1251 failed +convert \xa0 from ISO-8859-5 to WIN1251 produced \xa0 convert \xa1 from ISO-8859-5 to WIN1251 produced \xa8 -convert \xa2 from ISO-8859-5 to WIN1251 failed -convert \xa3 from ISO-8859-5 to WIN1251 failed -convert \xa4 from ISO-8859-5 to WIN1251 failed -convert \xa5 from ISO-8859-5 to WIN1251 failed -convert \xa6 from ISO-8859-5 to WIN1251 failed -convert \xa7 from ISO-8859-5 to WIN1251 failed -convert \xa8 from ISO-8859-5 to WIN1251 failed -convert \xa9 from ISO-8859-5 to WIN1251 failed -convert \xaa from ISO-8859-5 to WIN1251 failed -convert \xab from ISO-8859-5 to WIN1251 failed -convert \xac from ISO-8859-5 to WIN1251 failed -convert \xad from ISO-8859-5 to WIN1251 failed -convert \xae from ISO-8859-5 to WIN1251 failed -convert \xaf from ISO-8859-5 to WIN1251 failed +convert \xa2 from ISO-8859-5 to WIN1251 produced \x80 +convert \xa3 from ISO-8859-5 to WIN1251 produced \x81 +convert \xa4 from ISO-8859-5 to WIN1251 produced \xaa +convert \xa5 from ISO-8859-5 to WIN1251 produced \xbd +convert \xa6 from ISO-8859-5 to WIN1251 produced \xb2 +convert \xa7 from ISO-8859-5 to WIN1251 produced \xaf +convert \xa8 from ISO-8859-5 to WIN1251 produced \xa3 +convert \xa9 from ISO-8859-5 to WIN1251 produced \x8a +convert \xaa from ISO-8859-5 to WIN1251 produced \x8c +convert \xab from ISO-8859-5 to WIN1251 produced \x8e +convert \xac from ISO-8859-5 to WIN1251 produced \x8d +convert \xad from ISO-8859-5 to WIN1251 produced \xad +convert \xae from ISO-8859-5 to WIN1251 produced \xa1 +convert \xaf from ISO-8859-5 to WIN1251 produced \x8f convert \xb0 from ISO-8859-5 to WIN1251 produced \xc0 convert \xb1 from ISO-8859-5 to WIN1251 produced \xc1 convert \xb2 from ISO-8859-5 to WIN1251 produced \xc2 @@ -4341,22 +4338,22 @@ convert \xed from ISO-8859-5 to WIN1251 produced \xfd convert \xee from ISO-8859-5 to WIN1251 produced \xfe convert \xef from ISO-8859-5 to WIN1251 produced \xff -convert \xf0 from ISO-8859-5 to WIN1251 failed +convert \xf0 from ISO-8859-5 to WIN1251 produced \xb9 convert \xf1 from ISO-8859-5 to WIN1251 produced \xb8 -convert \xf2 from ISO-8859-5 to WIN1251 failed -convert \xf3 from ISO-8859-5 to WIN1251 failed -convert \xf4 from ISO-8859-5 to WIN1251 failed -convert \xf5 from ISO-8859-5 to WIN1251 failed -convert \xf6 from ISO-8859-5 to WIN1251 failed -convert \xf7 from ISO-8859-5 to WIN1251 failed -convert \xf8 from ISO-8859-5 to WIN1251 failed -convert \xf9 from ISO-8859-5 to WIN1251 failed -convert \xfa from ISO-8859-5 to WIN1251 failed -convert \xfb from ISO-8859-5 to WIN1251 failed -convert \xfc from ISO-8859-5 to WIN1251 failed -convert \xfd from ISO-8859-5 to WIN1251 failed -convert \xfe from ISO-8859-5 to WIN1251 failed -convert \xff from ISO-8859-5 to WIN1251 failed +convert \xf2 from ISO-8859-5 to WIN1251 produced \x90 +convert \xf3 from ISO-8859-5 to WIN1251 produced \x83 +convert \xf4 from ISO-8859-5 to WIN1251 produced \xba +convert \xf5 from ISO-8859-5 to WIN1251 produced \xbe +convert \xf6 from ISO-8859-5 to WIN1251 produced \xb3 +convert \xf7 from ISO-8859-5 to WIN1251 produced \xbf +convert \xf8 from ISO-8859-5 to WIN1251 produced \xbc +convert \xf9 from ISO-8859-5 to WIN1251 produced \x9a +convert \xfa from ISO-8859-5 to WIN1251 produced \x9c +convert \xfb from ISO-8859-5 to WIN1251 produced \x9e +convert \xfc from ISO-8859-5 to WIN1251 produced \x9d +convert \xfd from ISO-8859-5 to WIN1251 produced \xa7 +convert \xfe from ISO-8859-5 to WIN1251 produced \xa2 +convert \xff from ISO-8859-5 to WIN1251 produced \x9f convert \x00 from WIN1251 to ISO-8859-5 failed convert \x01 from WIN1251 to ISO-8859-5 produced \x01 convert \x02 from WIN1251 to ISO-8859-5 produced \x02 @@ -4485,23 +4482,23 @@ convert \x7d from WIN1251 to ISO-8859-5 produced \x7d convert \x7e from WIN1251 to ISO-8859-5 produced \x7e convert \x7f from WIN1251 to ISO-8859-5 produced \x7f -convert \x80 from WIN1251 to ISO-8859-5 failed -convert \x81 from WIN1251 to ISO-8859-5 failed +convert \x80 from WIN1251 to ISO-8859-5 produced \xa2 +convert \x81 from WIN1251 to ISO-8859-5 produced \xa3 convert \x82 from WIN1251 to ISO-8859-5 failed -convert \x83 from WIN1251 to ISO-8859-5 failed +convert \x83 from WIN1251 to ISO-8859-5 produced \xf3 convert \x84 from WIN1251 to ISO-8859-5 failed convert \x85 from WIN1251 to ISO-8859-5 failed convert \x86 from WIN1251 to ISO-8859-5 failed convert \x87 from WIN1251 to ISO-8859-5 failed convert \x88 from WIN1251 to ISO-8859-5 failed convert \x89 from WIN1251 to ISO-8859-5 failed -convert \x8a from WIN1251 to ISO-8859-5 failed +convert \x8a from WIN1251 to ISO-8859-5 produced \xa9 convert \x8b from WIN1251 to ISO-8859-5 failed -convert \x8c from WIN1251 to ISO-8859-5 failed -convert \x8d from WIN1251 to ISO-8859-5 failed -convert \x8e from WIN1251 to ISO-8859-5 failed -convert \x8f from WIN1251 to ISO-8859-5 failed -convert \x90 from WIN1251 to ISO-8859-5 failed +convert \x8c from WIN1251 to ISO-8859-5 produced \xaa +convert \x8d from WIN1251 to ISO-8859-5 produced \xac +convert \x8e from WIN1251 to ISO-8859-5 produced \xab +convert \x8f from WIN1251 to ISO-8859-5 produced \xaf +convert \x90 from WIN1251 to ISO-8859-5 produced \xf2 convert \x91 from WIN1251 to ISO-8859-5 failed convert \x92 from WIN1251 to ISO-8859-5 failed convert \x93 from WIN1251 to ISO-8859-5 failed @@ -4511,44 +4508,44 @@ convert \x97 from WIN1251 to ISO-8859-5 failed convert \x98 from WIN1251 to ISO-8859-5 failed convert \x99 from WIN1251 to ISO-8859-5 failed -convert \x9a from WIN1251 to ISO-8859-5 failed +convert \x9a from WIN1251 to ISO-8859-5 produced \xf9 convert \x9b from WIN1251 to ISO-8859-5 failed -convert \x9c from WIN1251 to ISO-8859-5 failed -convert \x9d from WIN1251 to ISO-8859-5 failed -convert \x9e from WIN1251 to ISO-8859-5 failed -convert \x9f from WIN1251 to ISO-8859-5 failed -convert \xa0 from WIN1251 to ISO-8859-5 failed -convert \xa1 from WIN1251 to ISO-8859-5 failed -convert \xa2 from WIN1251 to ISO-8859-5 failed -convert \xa3 from WIN1251 to ISO-8859-5 failed +convert \x9c from WIN1251 to ISO-8859-5 produced \xfa +convert \x9d from WIN1251 to ISO-8859-5 produced \xfc +convert \x9e from WIN1251 to ISO-8859-5 produced \xfb +convert \x9f from WIN1251 to ISO-8859-5 produced \xff +convert \xa0 from WIN1251 to ISO-8859-5 produced \xa0 +convert \xa1 from WIN1251 to ISO-8859-5 produced \xae +convert \xa2 from WIN1251 to ISO-8859-5 produced \xfe +convert \xa3 from WIN1251 to ISO-8859-5 produced \xa8 convert \xa4 from WIN1251 to ISO-8859-5 failed convert \xa5 from WIN1251 to ISO-8859-5 failed convert \xa6 from WIN1251 to ISO-8859-5 failed -convert \xa7 from WIN1251 to ISO-8859-5 failed +convert \xa7 from WIN1251 to ISO-8859-5 produced \xfd convert \xa8 from WIN1251 to ISO-8859-5 produced \xa1 convert \xa9 from WIN1251 to ISO-8859-5 failed -convert \xaa from WIN1251 to ISO-8859-5 failed +convert \xaa from WIN1251 to ISO-8859-5 produced \xa4 convert \xab from WIN1251 to ISO-8859-5 failed convert \xac from WIN1251 to ISO-8859-5 failed -convert \xad from WIN1251 to ISO-8859-5 failed +convert \xad from WIN1251 to ISO-8859-5 produced \xad convert \xae from WIN1251 to ISO-8859-5 failed -convert \xaf from WIN1251 to ISO-8859-5 failed +convert \xaf from WIN1251 to ISO-8859-5 produced \xa7 convert \xb0 from WIN1251 to ISO-8859-5 failed convert \xb1 from WIN1251 to ISO-8859-5 failed -convert \xb2 from WIN1251 to ISO-8859-5 failed -convert \xb3 from WIN1251 to ISO-8859-5 failed +convert \xb2 from WIN1251 to ISO-8859-5 produced \xa6 +convert \xb3 from WIN1251 to ISO-8859-5 produced \xf6 convert \xb4 from WIN1251 to ISO-8859-5 failed convert \xb5 from WIN1251 to ISO-8859-5 failed convert \xb6 from WIN1251 to ISO-8859-5 failed convert \xb7 from WIN1251 to ISO-8859-5 failed convert \xb8 from WIN1251 to ISO-8859-5 produced \xf1 -convert \xb9 from WIN1251 to ISO-8859-5 failed -convert \xba from WIN1251 to ISO-8859-5 failed +convert \xb9 from WIN1251 to ISO-8859-5 produced \xf0 +convert \xba from WIN1251 to ISO-8859-5 produced \xf4 convert \xbb from WIN1251 to ISO-8859-5 failed -convert \xbc from WIN1251 to ISO-8859-5 failed -convert \xbd from WIN1251 to ISO-8859-5 failed -convert \xbe from WIN1251 to ISO-8859-5 failed -convert \xbf from WIN1251 to ISO-8859-5 failed +convert \xbc from WIN1251 to ISO-8859-5 produced \xf8 +convert \xbd from WIN1251 to ISO-8859-5 produced \xa5 +convert \xbe from WIN1251 to ISO-8859-5 produced \xf5 +convert \xbf from WIN1251 to ISO-8859-5 produced \xf7 convert \xc0 from WIN1251 to ISO-8859-5 produced \xb0 convert \xc1 from WIN1251 to ISO-8859-5 produced \xb1 convert \xc2 from WIN1251 to ISO-8859-5 produced \xb2 @@ -4773,21 +4770,21 @@ convert \x9d from ISO-8859-5 to WIN866 failed convert \x9e from ISO-8859-5 to WIN866 failed convert \x9f from ISO-8859-5 to WIN866 failed -convert \xa0 from ISO-8859-5 to WIN866 failed +convert \xa0 from ISO-8859-5 to WIN866 produced \xff convert \xa1 from ISO-8859-5 to WIN866 produced \xf0 convert \xa2 from ISO-8859-5 to WIN866 failed convert \xa3 from ISO-8859-5 to WIN866 failed -convert \xa4 from ISO-8859-5 to WIN866 failed +convert \xa4 from ISO-8859-5 to WIN866 produced \xf2 convert \xa5 from ISO-8859-5 to WIN866 failed convert \xa6 from ISO-8859-5 to WIN866 failed -convert \xa7 from ISO-8859-5 to WIN866 failed +convert \xa7 from ISO-8859-5 to WIN866 produced \xf4 convert \xa8 from ISO-8859-5 to WIN866 failed convert \xa9 from ISO-8859-5 to WIN866 failed convert \xaa from ISO-8859-5 to WIN866 failed convert \xab from ISO-8859-5 to WIN866 failed convert \xac from ISO-8859-5 to WIN866 failed convert \xad from ISO-8859-5 to WIN866 failed -convert \xae from ISO-8859-5 to WIN866 failed +convert \xae from ISO-8859-5 to WIN866 produced \xf6 convert \xaf from ISO-8859-5 to WIN866 failed convert \xb0 from ISO-8859-5 to WIN866 produced \x80 convert \xb1 from ISO-8859-5 to WIN866 produced \x81 @@ -4853,21 +4850,21 @@ convert \xed from ISO-8859-5 to WIN866 produced \xed convert \xee from ISO-8859-5 to WIN866 produced \xee convert \xef from ISO-8859-5 to WIN866 produced \xef -convert \xf0 from ISO-8859-5 to WIN866 failed +convert \xf0 from ISO-8859-5 to WIN866 produced \xfc convert \xf1 from ISO-8859-5 to WIN866 produced \xf1 convert \xf2 from ISO-8859-5 to WIN866 failed convert \xf3 from ISO-8859-5 to WIN866 failed -convert \xf4 from ISO-8859-5 to WIN866 failed +convert \xf4 from ISO-8859-5 to WIN866 produced \xf3 convert \xf5 from ISO-8859-5 to WIN866 failed convert \xf6 from ISO-8859-5 to WIN866 failed -convert \xf7 from ISO-8859-5 to WIN866 failed +convert \xf7 from ISO-8859-5 to WIN866 produced \xf5 convert \xf8 from ISO-8859-5 to WIN866 failed convert \xf9 from ISO-8859-5 to WIN866 failed convert \xfa from ISO-8859-5 to WIN866 failed convert \xfb from ISO-8859-5 to WIN866 failed convert \xfc from ISO-8859-5 to WIN866 failed convert \xfd from ISO-8859-5 to WIN866 failed -convert \xfe from ISO-8859-5 to WIN866 failed +convert \xfe from ISO-8859-5 to WIN866 produced \xf7 convert \xff from ISO-8859-5 to WIN866 failed convert \x00 from WIN866 to ISO-8859-5 failed convert \x01 from WIN866 to ISO-8859-5 produced \x01 @@ -5111,20 +5108,20 @@ convert \xef from WIN866 to ISO-8859-5 produced \xef convert \xf0 from WIN866 to ISO-8859-5 produced \xa1 convert \xf1 from WIN866 to ISO-8859-5 produced \xf1 -convert \xf2 from WIN866 to ISO-8859-5 failed -convert \xf3 from WIN866 to ISO-8859-5 failed -convert \xf4 from WIN866 to ISO-8859-5 failed -convert \xf5 from WIN866 to ISO-8859-5 failed -convert \xf6 from WIN866 to ISO-8859-5 failed -convert \xf7 from WIN866 to ISO-8859-5 failed +convert \xf2 from WIN866 to ISO-8859-5 produced \xa4 +convert \xf3 from WIN866 to ISO-8859-5 produced \xf4 +convert \xf4 from WIN866 to ISO-8859-5 produced \xa7 +convert \xf5 from WIN866 to ISO-8859-5 produced \xf7 +convert \xf6 from WIN866 to ISO-8859-5 produced \xae +convert \xf7 from WIN866 to ISO-8859-5 produced \xfe convert \xf8 from WIN866 to ISO-8859-5 failed convert \xf9 from WIN866 to ISO-8859-5 failed convert \xfa from WIN866 to ISO-8859-5 failed convert \xfb from WIN866 to ISO-8859-5 failed -convert \xfc from WIN866 to ISO-8859-5 failed +convert \xfc from WIN866 to ISO-8859-5 produced \xf0 convert \xfd from WIN866 to ISO-8859-5 failed convert \xfe from WIN866 to ISO-8859-5 failed -convert \xff from WIN866 to ISO-8859-5 failed +convert \xff from WIN866 to ISO-8859-5 produced \xa0 convert \x00 from WIN1250 to ISO-8859-2 failed convert \x01 from WIN1250 to ISO-8859-2 produced \x01 convert \x02 from WIN1250 to ISO-8859-2 produced \x02 @@ -5253,34 +5250,34 @@ convert \x7d from WIN1250 to ISO-8859-2 produced \x7d convert \x7e from WIN1250 to ISO-8859-2 produced \x7e convert \x7f from WIN1250 to ISO-8859-2 produced \x7f -convert \x80 from WIN1250 to ISO-8859-2 produced \x80 -convert \x81 from WIN1250 to ISO-8859-2 produced \x81 -convert \x82 from WIN1250 to ISO-8859-2 produced \x82 -convert \x83 from WIN1250 to ISO-8859-2 produced \x83 -convert \x84 from WIN1250 to ISO-8859-2 produced \x84 -convert \x85 from WIN1250 to ISO-8859-2 produced \x85 -convert \x86 from WIN1250 to ISO-8859-2 produced \x86 -convert \x87 from WIN1250 to ISO-8859-2 produced \x87 -convert \x88 from WIN1250 to ISO-8859-2 produced \x88 -convert \x89 from WIN1250 to ISO-8859-2 produced \x89 +convert \x80 from WIN1250 to ISO-8859-2 failed +convert \x81 from WIN1250 to ISO-8859-2 failed +convert \x82 from WIN1250 to ISO-8859-2 failed +convert \x83 from WIN1250 to ISO-8859-2 failed +convert \x84 from WIN1250 to ISO-8859-2 failed +convert \x85 from WIN1250 to ISO-8859-2 failed +convert \x86 from WIN1250 to ISO-8859-2 failed +convert \x87 from WIN1250 to ISO-8859-2 failed +convert \x88 from WIN1250 to ISO-8859-2 failed +convert \x89 from WIN1250 to ISO-8859-2 failed convert \x8a from WIN1250 to ISO-8859-2 produced \xa9 -convert \x8b from WIN1250 to ISO-8859-2 produced \x8b +convert \x8b from WIN1250 to ISO-8859-2 failed convert \x8c from WIN1250 to ISO-8859-2 produced \xa6 convert \x8d from WIN1250 to ISO-8859-2 produced \xab convert \x8e from WIN1250 to ISO-8859-2 produced \xae convert \x8f from WIN1250 to ISO-8859-2 produced \xac -convert \x90 from WIN1250 to ISO-8859-2 produced \x90 -convert \x91 from WIN1250 to ISO-8859-2 produced \x91 -convert \x92 from WIN1250 to ISO-8859-2 produced \x92 -convert \x93 from WIN1250 to ISO-8859-2 produced \x93 -convert \x94 from WIN1250 to ISO-8859-2 produced \x94 -convert \x95 from WIN1250 to ISO-8859-2 produced \x95 -convert \x96 from WIN1250 to ISO-8859-2 produced \x96 -convert \x97 from WIN1250 to ISO-8859-2 produced \x97 -convert \x98 from WIN1250 to ISO-8859-2 produced \x98 -convert \x99 from WIN1250 to ISO-8859-2 produced \x99 +convert \x90 from WIN1250 to ISO-8859-2 failed +convert \x91 from WIN1250 to ISO-8859-2 failed +convert \x92 from WIN1250 to ISO-8859-2 failed +convert \x93 from WIN1250 to ISO-8859-2 failed +convert \x94 from WIN1250 to ISO-8859-2 failed +convert \x95 from WIN1250 to ISO-8859-2 failed +convert \x96 from WIN1250 to ISO-8859-2 failed +convert \x97 from WIN1250 to ISO-8859-2 failed +convert \x98 from WIN1250 to ISO-8859-2 failed +convert \x99 from WIN1250 to ISO-8859-2 failed convert \x9a from WIN1250 to ISO-8859-2 produced \xb9 -convert \x9b from WIN1250 to ISO-8859-2 produced \x9b +convert \x9b from WIN1250 to ISO-8859-2 failed convert \x9c from WIN1250 to ISO-8859-2 produced \xb6 convert \x9d from WIN1250 to ISO-8859-2 produced \xbb convert \x9e from WIN1250 to ISO-8859-2 produced \xbe @@ -5509,34 +5506,34 @@ convert \x7d from ISO-8859-2 to WIN1250 produced \x7d convert \x7e from ISO-8859-2 to WIN1250 produced \x7e convert \x7f from ISO-8859-2 to WIN1250 produced \x7f -convert \x80 from ISO-8859-2 to WIN1250 produced \x80 -convert \x81 from ISO-8859-2 to WIN1250 produced \x81 -convert \x82 from ISO-8859-2 to WIN1250 produced \x82 -convert \x83 from ISO-8859-2 to WIN1250 produced \x83 -convert \x84 from ISO-8859-2 to WIN1250 produced \x84 -convert \x85 from ISO-8859-2 to WIN1250 produced \x85 -convert \x86 from ISO-8859-2 to WIN1250 produced \x86 -convert \x87 from ISO-8859-2 to WIN1250 produced \x87 -convert \x88 from ISO-8859-2 to WIN1250 produced \x88 -convert \x89 from ISO-8859-2 to WIN1250 produced \x89 +convert \x80 from ISO-8859-2 to WIN1250 failed +convert \x81 from ISO-8859-2 to WIN1250 failed +convert \x82 from ISO-8859-2 to WIN1250 failed +convert \x83 from ISO-8859-2 to WIN1250 failed +convert \x84 from ISO-8859-2 to WIN1250 failed +convert \x85 from ISO-8859-2 to WIN1250 failed +convert \x86 from ISO-8859-2 to WIN1250 failed +convert \x87 from ISO-8859-2 to WIN1250 failed +convert \x88 from ISO-8859-2 to WIN1250 failed +convert \x89 from ISO-8859-2 to WIN1250 failed convert \x8a from ISO-8859-2 to WIN1250 failed -convert \x8b from ISO-8859-2 to WIN1250 produced \x8b +convert \x8b from ISO-8859-2 to WIN1250 failed convert \x8c from ISO-8859-2 to WIN1250 failed convert \x8d from ISO-8859-2 to WIN1250 failed convert \x8e from ISO-8859-2 to WIN1250 failed convert \x8f from ISO-8859-2 to WIN1250 failed -convert \x90 from ISO-8859-2 to WIN1250 produced \x90 -convert \x91 from ISO-8859-2 to WIN1250 produced \x91 -convert \x92 from ISO-8859-2 to WIN1250 produced \x92 -convert \x93 from ISO-8859-2 to WIN1250 produced \x93 -convert \x94 from ISO-8859-2 to WIN1250 produced \x94 -convert \x95 from ISO-8859-2 to WIN1250 produced \x95 -convert \x96 from ISO-8859-2 to WIN1250 produced \x96 -convert \x97 from ISO-8859-2 to WIN1250 produced \x97 -convert \x98 from ISO-8859-2 to WIN1250 produced \x98 -convert \x99 from ISO-8859-2 to WIN1250 produced \x99 +convert \x90 from ISO-8859-2 to WIN1250 failed +convert \x91 from ISO-8859-2 to WIN1250 failed +convert \x92 from ISO-8859-2 to WIN1250 failed +convert \x93 from ISO-8859-2 to WIN1250 failed +convert \x94 from ISO-8859-2 to WIN1250 failed +convert \x95 from ISO-8859-2 to WIN1250 failed +convert \x96 from ISO-8859-2 to WIN1250 failed +convert \x97 from ISO-8859-2 to WIN1250 failed +convert \x98 from ISO-8859-2 to WIN1250 failed +convert \x99 from ISO-8859-2 to WIN1250 failed convert \x9a from ISO-8859-2 to WIN1250 failed -convert \x9b from ISO-8859-2 to WIN1250 produced \x9b +convert \x9b from ISO-8859-2 to WIN1250 failed convert \x9c from ISO-8859-2 to WIN1250 failed convert \x9d from ISO-8859-2 to WIN1250 failed convert \x9e from ISO-8859-2 to WIN1250 failed
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers