Моя конечная цель заключается в том, чтобы написать неглабированный текстовый вывод на консоль в Windows с помощью программы на С++.
cmd.exe меня никуда не достает, поэтому я получил последнюю, блестящую версию PowerShell (которая поддерживает unicode). Я проверил, что могу
- введите символы не-юникода и
- см. вывод консоли unicode из команд Windows (например, "dir" )
например, у меня есть этот файл, "가.txt" (가 - первая буква в корейском алфавите), и я могу получить такой вывод:
PS P:\reference\unicode> dir .\가.txt
Directory: P:\reference\unicode
Mode LastWriteTime Length
Name
---- ------------- ------
----
-a--- 1/12/2010 8:54 AM 0 가.txt
Пока все хорошо. Но писать на консоль с помощью программы на С++ не работает.
int main()
{
wchar_t text[] = {0xAC00, 0}; // 가 has code point U+AC00 in unicode
wprintf(L"%s", text); // this prints a single question mark: "?"
}
Я не знаю, чего мне не хватает. Тот факт, что я могу вводить и видеть 가 на консоли, кажется, указывает, что у меня есть три необходимые части (поддержка юникода, шрифт и символ), но я должен ошибаться.
Я тоже пробовал "chcp" без всякой удачи. Я что-то делаю в своей программе на С++?
Спасибо!