Я использую C ++ / XMS в AIX для потребления входящих сообщений из MQ. Теперь у меня есть необходимость конвертировать сообщение из ISO8859-1 в UTF-8. Я делаю следующее.
================================================== ====
void iso2utf8( char* text_iso, char* text_utf8, int nLen)
{
cout << "Converting to UTF-8." << endl;
iconv_t ic;
ic = iconv_open("UTF-8", "ISO8859-1"); // iso->utf8
cout << "Size of text_iso" << sizeof(text_iso) << endl;
size_t il = nLen;
size_t ol = nLen;
cout << "Size of text_iso" << ol << endl;
iconv(ic , &text_iso, &il, &text_utf8, &ol);
iconv_close(ic);
cout << "Message in UTF-8: " << text_utf8 << endl;
return;
}
================================================== ====
После преобразования, когда я сохраняю сообщение в файл, я возвращаю сообщение ISO8859-1. Любые советы о том, как решить эту проблему. Я использую fstream для записи в файл.
Задача ещё не решена.
Других решений пока нет …