Не подскажите как используя iconv преобразовать С-строку, содержащую UTF-8 символы в wstring (UCS-4)?
Следующее работает некорректно:
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "");
char* str = get_utf8_string();
size_t str_len = strlen(str), out_len = 100;
char* out = new char[100]; // Размер буфера заведомо больше размера результирующей строки
iconv_t cd = iconv_open("UCS-4", "UTF-8");
iconv(cd, &str, &str_len, &out, &out_len);
wstring wstr = reinterpret_cast<wchar_t*>(out);
wcout << wstr << endl;
//delete[] out;
iconv_close(cd);
}
Спасибо.