LINUX.ORG.RU

C+конвертирование


0

0

Необходимо портировать прогу под винды. А как в ней осуществить перекодирование koi8-r<->cp1251; cp1251<->866? В *никсах все ясно - iconv. Язык: Си Плз, помогите. А то работа стоит.

anonymous

Ну если есть исходник, то в чем проблема? В томже *никсе переделываешь кодировки и компилишь в windows. А если его нет.. То как ты вообще собираешься делать порт, если же ты его как то сделаешь без исходника то дизассемблер и редактор ресурсов тебе помогут.Так и ищи "редактор ресурсов", на яндексе в смысле.

OxiD ★★★★
()

Исходники есть. Дело в том, что база хранится в koi8-r, а на виндах вывод надо делать в cp1251 (базу конвертить, не предсталяется возможным). Как быть в этом случае?

anonymous
()

вставить программу ifdef WIN32 в котором перекодирует строки из базы в CP1251, таблицы можно поискать

anonymous
()

Можно как в предыдущем ответе, а можно при выводе базы использовать эти самые таблицы перекодировок, в зависимости от того какая кодировка была в настройках, а саму базу переделать можно( не обязательно) в какой-нибудь unicode.

OxiD ★★★★
()

/*------------------------------------------------------------------------*/
char tab_KOI8[] = {
0xE1,0xE2,0xF7,0xE7,0xE4,0xE5,0xB3,0xF6
,0xFA,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF
,0xF0,0xF2,0xF3,0xF4,0xF5,0xE6,0xE8,0xE3
,0xFE,0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0
,0xF1,0xC1,0xC2,0xD7,0xC7,0xC4,0xC5,0xA3
,0xD6,0xDA,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE
,0xCF,0xD0,0xD2,0xD3,0xD4,0xD5,0xC6,0xC8
,0xC3,0xDE,0xDB,0xDD,0xDF,0xD9,0xD8,0xDC
,0xC0,0xD1,0
};
/*------------------------------------------------------------------------*/
char tab_866[] = {
0x80,0x81,0x82,0x83,0x84,0x85,0xF0,0x86
,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E
,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96
,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E
,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xF1
,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD
,0xAE,0xAF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5
,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED
,0xEE,0xEF,0
};
/*------------------------------------------------------------------------*/
char tab_CP1251[] = {
0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xA8,0xC6
,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE
,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6
,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE
,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xB8
,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED
,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5
,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD
,0xFE,0xFF,0
};
/*------------------------------------------------------------------------*/
char tab_ISO[] = {
0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xA1,0xB6
,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE
,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6
,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE
,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xF1
,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD
,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5
,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED
,0xEE,0xEF,0
};
/*------------------------------------------------------------------------*/
char tab_MAC[] = {
0x80,0x81,0x82,0x83,0x84,0x85,0xDD,0x86
,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E
,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96
,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E
,0x9F,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xDE
,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED
,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5
,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD
,0xFE,0xDF,0
};
/*------------------------------------------------------------------------*/

OlegY
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.