Господа, как нынче модно делать сабж? В смысле C++17/20.
На входе есть std::string/char* в текущей локали, на выходе надо получить char* в кодировке UTF8 для передачи в api.
Без необходимости преобразования в wstring. Желательно без промежуточного wstring.
На cppreference большая часть классов и методов, которые могут это выполнить, объявлены deprecated в c++17.