Привет всем.
Проблема следующая — есть строка в char, содержащая символы из кириллицы. Как преобразовать ее в wchar_t, чтобы символы кириллицы отображались нормально?
Здравствуйте, Jackson86, Вы писали:
J>Проблема следующая — есть строка в char, содержащая символы из кириллицы. Как преобразовать ее в wchar_t, чтобы символы кириллицы отображались нормально?
Если Microsoft Visual C++, то можно так:
#include <atlbase.h>
...
USES_CONVERSION;
const char* as = "Привет!";
const wchar_t* ws = A2CW(as);
::MessageBoxW(NULL, ws, L"", MB_OK);
Только осторожней с функцией alloca (она здесь неявно используется).
Если Borland C++ Builder, то можно так:
AnsiString as = "Привет!";
WideString ws = as;
::MessageBoxW(NULL, ws.c_bstr(), L"", MB_OK);
Оба способа используют WinAPI-шную функцию MultiByteToWideChar чтобы преобразовать текст из ANSI-кодировки (скорее всего code page 1251) в кодировку UTF-16.