Моя переменная находится в конкретной внутренней реализации широкой строки, но я могу довольно легко сделать ее массивом широких символов. Проблема в том, что мне нужно передать ее в библиотечную функцию, которая будет принимать только символьные массивы.
В итоге я получаю то, что выглядит следующим образом:
wchar_t* wstr;
// char* str = "need some processing here";
function(str);
Итак, есть ли простой способ или я должен просто сделать это вручную символ за символом?
char * может означать много вещей. Если функция, принимающая символ *, фактически использует UTF8, есть способы преобразовать UTF16 или UTF32 в UTF8. wchar_t обычно используется для хранения UTF16 (windows) или UTF32 (macosx), а также других кодировок.
Посмотрите здесь на ConvertUTF.c / .h
Других решений пока нет …