Как UTF-8 помещается в char?
А никак не помещается.
Потому что Си не поддерживает обработку строк в UTF-8. Для этого нужны сторонние библиотеки, которые умеют делать нормализацию, считать длину строки в абстрактных символах, а не кодпоинтах, и т. д. Поддержки этого всего у Си и C++ из коробки нет. 
Ну, вы можете, конечно, запихнуть UTF-8 поток в массив char'ов, но ни одна нативная функция для работы со строками не будет с ним работать правильно. Даже длину строки никогда не сможет посчитать.
Поэтому, ответ прост: в C/C++ для работы с UTF8 используйте стороннюю библиотеку.
И да, никогда не используйте wchar_t нигде, где не можете этого избежать, например, в апи сторонних библиотек. wchar_t это тупо костыль в дизайне языка, который признали даже создатели этих языков.
Вы же сами ответили на свой вопрос - используется от 1 до 6 char`ов.