Я хотел бы преобразовать строку char* в строку wchar* в C.
char*
wchar*
Я нашел много ответов, но большинство из них для C ++. Не могли бы вы помочь мне?
Спасибо.
Попробуйте swprintf с флагом %hs.
swprintf
%hs
Пример:
wchar_t ws[100]; swprintf(ws, 100, L"%hs", "ansi string");
setlocale() с последующим mbstowcs().
setlocale()
mbstowcs()
что вы ищете, это
mbstowcs
работает так же, как функция копирования с char * на char *
но в этом случае вы сохраняете в wchar_t *
если у вас есть символы ANSI.просто вставьте 0 ('\ 0') перед каждым символом и приведите их к wchar_t *.
Если у вас есть доступный API Windows, функция преобразования MultiByteToWideChar предлагает некоторые настраиваемые преобразования строк из различных кодировок в UTF-16. Это может быть более уместным, если вы не слишком заботитесь о переносимости и не хотите точно выяснить, какое значение имеют различные настройки локали для преобразования строк.