以下代码:
#include <iostream>
using std::wcin;
using std::wcout;
using std::locale;
int main()
{
locale::global(locale("Portuguese_Brazil"));
wcout << "wcin Test using \"ção\": "; // shows that wcout works properly
wchar_t wcinTest[] = L"";
wcin >> wcinTest;
wcout << wcinTest << " should be \"ção\".";
return 0;
}
结果是:
wcin Test using "ção": ção
╬Æo should be "ção".
╬ 字符是 U+2021 或 8225,ç 是 U+00E7 或 231。
我更改了多字节选项,在项目属性中设置和不设置 UNICODE。没有任何效果。
我已经将控制台字体设置为 Consolas,这是一种能够正确显示 ç 字符的真正类型字体。
我希望这可以作为未来 UNICODE 控制台应用程序的标准做法,尽可能简单且可重现。
有任何想法吗?