Преобразование из char в wchar_t
От: Jackson86 Россия  
Дата: 01.04.07 16:27
Оценка:
Привет всем.

Проблема следующая — есть строка в char, содержащая символы из кириллицы. Как преобразовать ее в wchar_t, чтобы символы кириллицы отображались нормально?
Re: Преобразование из char в wchar_t
От: Сергей Мухин Россия  
Дата: 01.04.07 16:47
Оценка:
Здравствуйте, Jackson86, Вы писали:

J>Проблема следующая — есть строка в char, содержащая символы из кириллицы. Как преобразовать ее в wchar_t, чтобы символы кириллицы отображались нормально?


задайте себе вопрос — я первый сталкиваюсь с этой проблемой?

ответ очевиден.
и тогда, пожалуйте г. Jackson86 в поиск.
---
С уважением,
Сергей Мухин
Re: Преобразование из char в wchar_t
От: Аноним  
Дата: 01.04.07 17:55
Оценка:
Здравствуйте, Jackson86:

Строго говоря, это зависит от платформы. На Win можно пользоваться MultiByteToWideChar, ещё есть mbtowc, _mbtowc_l.
Re: Преобразование из char в wchar_t
От: Пётр Седов Россия  
Дата: 02.04.07 13:57
Оценка:
Здравствуйте, 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.
Пётр Седов (ушёл с RSDN)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.