Есть в наличии WinXP rus со всеми обновлениями, wxDev 7.0 RC5, компилятор minGW 3.4.5, wxWidgets версии 2.8.10
Есть вот такая консольная программка:
Code: Select all
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout << "Привет" << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
wxWidgets сначала была 2.8.9, потом скачал 2.8.10 и скомпилил - аналогично. В скаченной 2.8.10 в файле \..\wxWidgets-2.8.10\include\wx\msw\setup.h
wxUSE_UNICODE установил в 1 (вроде бы добавил поддержку юникода:)), перекомпилил библиотеку - все едино. Пробовал играться с wxEncodingConverter - на выходе или другая абракадабра, или пустая строка.
Последний раз писал на Сях (правда BC++ и MSVC) лет пять назад, и не припомню таких проблем.
Что я делаю не так? Подскажите плиз. Или в открытую дверь ломлюсь?
UPD. Сохранил файл в кодировке DOS, скомпилил - получил свой Привет. Причину понял, возник такой вопрос - как правильно сконвертировать строчку с кодировки Win (1251) в DOS (866)? С нижеприведенного кода получаю пустую строчку
Code: Select all
wxEncodingConverter cnv;
cnv.Init(wxFONTENCODING_CP1251, wxFONTENCODING_CP866);
wxString str1 = "Привет";
wxString str2;
str2 = cnv.Convert(str1);
cout << str2 << endl;