Конвертировать char * в wchar * в C - PullRequest
12 голосов
/ 28 января 2011

Я хотел бы преобразовать строку char* в строку wchar* в C.

Я нашел много ответов, но большинство из них для C ++. Не могли бы вы помочь мне?

Спасибо.

Ответы [ 5 ]

18 голосов
/ 28 января 2011

Попробуйте swprintf с флагом %hs.

Пример:

wchar_t  ws[100];
swprintf(ws, 100, L"%hs", "ansi string");
4 голосов
/ 28 января 2011

setlocale() с последующим mbstowcs().

2 голосов
/ 18 ноября 2012

что вы ищете, это

mbstowcs

работает так же, как функция копирования с char * на char *

но в этом случае вы сохраняете в wchar_t *

0 голосов
/ 08 апреля 2016

если у вас есть символы ANSI.просто вставьте 0 ('\ 0') перед каждым символом и приведите их к wchar_t *.

0 голосов
/ 28 января 2011

Если у вас есть доступный API Windows, функция преобразования MultiByteToWideChar предлагает некоторые настраиваемые преобразования строк из различных кодировок в UTF-16. Это может быть более уместным, если вы не слишком заботитесь о переносимости и не хотите точно выяснить, какое значение имеют различные настройки локали для преобразования строк.

...