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

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

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

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

Помогите, пожалуйста!
  • Вопрос задан
  • 2500 просмотров
Пригласить эксперта
Ответы на вопрос 2
Libiconv?
Ответ написан
Комментировать
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. Пофиксил название локали.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы