【发布时间】:2019-01-18 13:03:48
【问题描述】:
我想在终端打印≠。我试过了
cout << '\u2248' << endl;
cout << '\U00002248' << endl;
cout << '≠' << endl;
给了
14846344
14846344
14846368
我尝试用双引号替换单引号
Ôëê
Ôëê
Ôëá
怎么做?我很好奇我得到的输出的解释是什么?我正在运行 Netbeans 9,但也直接从命令行使用 g++ 进行了测试。我认为这应该是可能的,因为echo ≠ 在 Windows 命令提示符下产生了正确的输出。
【问题讨论】:
-
两件事:首先,多字符文字是特定于实现的东西。使用宽字符文字或字符串。其次,既然你提到了 MinGW,我猜你是在 Windows 上,而 Windows 控制台历来在 Unicode 方面非常糟糕(或者实际上不在当前选择的代码页中)。
-
@Someprogrammerdude “使用宽字符文字或字符串。”这就是我通过将它们放在双引号中所做的吗?我还尝试在前面添加
L,它的输出不同但仍然错误。 -
尝试使用 UnicodeString 或 AnsiString 类型来声明字符串。它可能会起作用
-
@EdinHajdarevic 这些是 Borland C++ / Embarcadero RAD Studio 特定的类,因此非常非标准。
标签: c++ netbeans g++ mingw special-characters