Преборазование DOS кодировки в Windows и обратно
Ниже приведены функции, меняющие кодировку передаваемой им строки и возвращают указатель на передаваемую строку.
//из DOS в Windows
char* Decode_DOS_to_Win(char * str)
{
unsigned char *cstr=str;//"unsigned" - чтоб избежать предупреждений
// "сдвигаем" код символов
for(; *cstr; cstr++)
{
if(*cstr>=128 && *cstr<=175)
*cstr+=64;
else if(*cstr>=224 && *cstr<=239)
*cstr+=16;
else if(*cstr==252)
*cstr=185;
}
return str;
}
//из Windows в DOS
char* Decode_Win_to_DOS(char * str)
{
unsigned char *cstr=str;
// "сдвигаем" код символов
for(;*cstr;cstr++)
{
if(*cstr>=240)
*cstr-=16;
else if(*cstr>=192)
*cstr-=64;
else if(*cstr==185)
*cstr=252;
}
return str;
}