Тьфу. Написал немного не то, но смысл — остается тот же. Делаем локаль с кодировкой консоли:
locale loc = locale(".OCP");
Далее, делаем imbue потокам:
wcout.imbue(loc);
Для сравнения символов и всяких isalpha используем локаль:
bool b = isalpha(ch, loc);
Теперь оно?