Задать вопрос

Как перевести KOI8 в UTF на C/C++?

Из остальных кодировок (CP1251 итд) я конвертирую с помощью boost::locale::conv::to_utf.
Для работы с подобными кодировками boost рекомендует boost::locale::util::base_converter (тут).

Я так и не понял, как ей пользоваться. Тут есть краткая справка по преобразованию в юникод, но я не понимаю как с этим работать.

Возможно, есть другие варианты (без boost), но мне не хотелось бы тянуть ещё одну громоздкую библиотеку.

Помогите, пожалуйста!
  • Вопрос задан
  • 2714 просмотров
Подписаться 3 Оценить 6 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Яндекс Практикум
    Мидл разработчик С++
    4 месяца
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
AxisPod
@AxisPod
А зачем вам использовать вообще util. Используйте именно to_utf, разве boost не поддерживает koi8? Смотрите, есть ли необходимая вам локаль в системе, если нет, надо сгенерировать. Чем вас не устраивает вариант
generator gen;
std::locale loc= gen().generate("ru_RU.koi8-r");
std::string utf8_string = to_utf<char>(koi8_string, loc);

Возможно понадобится поднастроить генератор разве что.

P.S. Пофиксил название локали.
Ответ написан
2ord
@2ord
Libiconv?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы