Проблема не в том, как печатать значения utf-16 ... а в том, что ваш терминал вообще будет печатать utf.
Если ваш терминал поддерживает utf, то вам нужно только использовать wchar_t
альтернативы семейству функций printf
... и вместо char
используйте символы wchar_t
.Поскольку терминалы обычно ориентированы на байты, преобразование из utf-16 в utf-8 будет выполнено с помощью функций локали, и будет выведено utf-8
символов.
См. wprintf(3)
и многие другие.