Размер wchar_t
зависит от платформы и не зависит от UTF-8, UTF-16 и UTF-32 (его можно использовать для представления данных в Юникоде, но нет ничего, что говорит о том, что он представляет ).
Я настоятельно рекомендую использовать UTF-8 с std::string
для внутреннего представления строк и использовать установленные библиотеки, такие как ICU, для сложных манипуляций и задач преобразования с использованием Unicode.