下面的代码:在wcin获取错误的字符输入?
#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,且C是U + 00E7或231
我改变MULT字节选项,在项目属性中设置和不设置UNICODE。没有工作。
我已经将控制台字体设置为Consolas,它是一种能够正确显示ç字符的真正的字体。
我希望这可以作为将来的UNICODE控制台应用程序的标准做法,使其简单和可重复使用。
任何想法?
CP1252不是unicode。 – ssegvic 2016-02-05 10:36:02
我同意,但它解决了我的具体问题,即使我不得不放弃utf8。更好,控制台只需要使用unicode字体 – orlando2bjr 2016-03-11 10:53:20