Нет, Windows не поддерживает печать UTF-8 на консоли.
Когда Windows говорит "Unicode", это означает UTF-16.Вам необходимо использовать MultiByteToWideChar для преобразования из UTF-8 в UTF-16.Как то так:
char* text = "My UTF-8 text\n";
int len = MultiByteToWideChar(CP_UTF8, 0, text, -1, 0, 0);
wchar_t *unicode_text = new wchar_t[len];
MultiByteToWideChar(CP_UTF8, 0, text, -1, unicode_text, len);
wprintf(L"%s", unicode_text);