Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Преобразовние Utf-16 <=> Utf-8


Автор: Nekкий 26.8.2011, 12:39
Вопрос казалось бы простой, но нормально ответа на него я пока не нашел. Нужно вывести строчку юникода(UTF-16) в файл с изменением кодировки. Знаю что можно при при wofstream::imbue задать вывод в win-1251 и cp-866. Но как сделть преобразование из utf-16 в utf-8 я найти не могу. Поэтому прошу вашей помощи. Желательно что нибудь кроссплатформенное, поэтому MultiByteToWideChar() не предлагать. Если можно то неотвечайте в стиле: "гугли .." и "смотри ..", а дайте конкретный пример.Благодарю за внимание. 

Автор: rudvil 26.8.2011, 12:43
Кроссплатформенное решение, http://utfcpp.sourceforge.net/.
Код

vector<unsigned short> utf16line;
string utf8line;
utf8::utf16to8(utf16line.begin(), utf16line.end(), back_inserter(utf8line));

Автор: rodnover 26.8.2011, 18:05
я через iconv делал. Но реализацию функции поискать могу только в понедельник, на работе.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)