我的最終目標是通過C++程序在Windows中將一些非拉丁文本輸出寫入控制檯。通過C++程序在PowerShell中打印Unicode字符
cmd.exe讓我無處可去,所以我得到了PowerShell的最新發亮版本(支持unicode)。我已驗證我可以
- 型非Unicode字符和
- 看到窗口的命令非Unicode控制檯輸出(如「目錄」)
例如,我有這個文件中,「가.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: "?"
}
我不知道我在想什麼。我可以在控制檯上鍵入並看到가的事實似乎表明我有三個需要的部分(unicode支持,字體和字形),但我必須弄錯。
我也試過「chcp」沒有任何運氣。我在C++程序中做錯了什麼?
謝謝!
我剛剛注意到做「PS> [char] 0xAC00」打印正確的字符。所以我確實在我的應用程序中做錯了什麼... – 2010-01-21 08:25:37