Моя конечная цель - записать вывод нелатинского текста на консоль в Windows через программу на C ++.
cmd.exe ни к чему не приводит, поэтому я получил последнюю блестящую версию PowerShell (поддерживающую юникод). Я подтвердил, что могу
- введите не-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
Пока все хорошо. Но запись в консоль с использованием программы на C ++ не работает.
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" без какой-либо удачи. Я что-то не так делаю в своей программе на C ++?
Спасибо!