Преобразование C-строк из локального кодирования в UTF8

Я пишу небольшое приложение, в котором я читаю некоторый текст с консоли, который затем сохраняется в классической строке char *.
Как это происходит, мне нужно передать его в библиотеку, которая принимает только строки в кодировке UTF-8. Поскольку консоль Windows использует локальную кодировку, мне нужно преобразовать локальную кодировку в UTF-8.
Если я не ошибаюсь, я мог бы использовать MultiByteToWideChar (..) для кодирования в UTF-16, а затем использовать WideCharToMultiByte (..) для преобразования в UTF-8.

Однако мне интересно, есть ли способ конвертировать напрямую из локальной кодировки в UTF-8 без использования каких-либо внешних библиотек, поскольку идея конвертации в wchar просто для того, чтобы можно было конвертировать обратно в char (в кодировке utf-8, но все же) кажется странным для меня.

Ответы на вопрос(2)

Ваш ответ на вопрос