我的最终目标是通过一个C++程序在Windows控制台中输出一些非拉丁文本。cmd.exe对我没有用,所以我使用了最新的、支持Unicode的PowerShell(版本很新)。我已经确认我可以输入非Unicode字符并从Windows命令(如“dir”)中看到非Unicode控制台输出。
例如,我有一个名为“가.txt”的文件(“가”是韩文字母表中的第一个字母),我可以得到这样的输出:
例如,我有一个名为“가.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++程序中做错了什么吗?
谢谢!