Преобразовние Utf-16 <=> Utf-8

Тема в разделе "Общие вопросы по С и С++", создана пользователем Nek, 26 авг 2011.

  1. Nek

    Nek Гость

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

    a0z Well-Known Member

    Регистрация:
    15 мар 2011
    Сообщения:
    109
    Симпатии:
    0
    Теоретически это можно сделать функцией wctomb, но перед этим вызвать что-то типа setlocale(LC_ALL, ".utf-8")
    Как оно на практике - ХЗ.

    Второй вариант - произвести трансформацию руками, просто перекидывая биты. Нужно просто посмотреть как устроены UTF-16/8

    Третий вариант - использовать libiconv, который кроссплатформенный.
     
Загрузка...
Похожие Темы - Преобразовние Utf <=>
  1. mazimaz
    Ответов:
    29
    Просмотров:
    1.271
  2. Vadik(R)
    Ответов:
    4
    Просмотров:
    1.426
  3. garrick
    Ответов:
    2
    Просмотров:
    1.420
  4. shisik
    Ответов:
    1
    Просмотров:
    1.288
  5. NickProstoNick
    Ответов:
    8
    Просмотров:
    2.373

Поделиться этой страницей