iconv + wstring
От: Neavirc  
Дата: 17.04.08 16:28
Оценка:
Не подскажите как используя 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);
}


Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.