Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Проблемы с кодировкой


Автор: BIV 21.6.2012, 22:05
Всем доброе время суток!
Как переводить кодировки?
У меня в переменную char buf[1024]; заносится сообщение с досовских приложений, перегоняю в CString edit2 += buf; и вывожу в IDC_EDIT1, получаю:

Microsoft Windows XP [‚¥àá¨ï 5.1.2600]
(‘) Š®à¯®à æ¨ï Œ ©ªà®á®äâ, 1985-2001.

c:\Documents and Settings\ˆ£®àì\Œ®¨ ¤®ªã¬¥­âë\C++\à®¡ë\à®£à ¬¬ë\Console\Console>

Как исправить?

Автор: Cheloveck 21.6.2012, 22:36
Вопрос на столько забитый, что пора бы уже стыдиться его задавать. Гугл ответит на него не задумываясь.
user posted image

Автор: BIV 21.6.2012, 23:01
Найти можно, но все ссылки ссылаются на этот код, но прикол в том, что он не работает
Код

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;
}

Автор: Earnest 22.6.2012, 06:56
Смотри ф-и OemToAnsi и  AnsiToOem

Автор: BIV 22.6.2012, 10:55
Earnest, спасибо! Решил вопрос

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)