【发布时间】:2013-06-01 10:30:33
【问题描述】:
我需要在 Linux 终端上使用 iostream 打印一些 unicode 字符。奇怪的事情发生了。当我写的时候:
cout << "\u2780";
我得到:➀,这几乎正是我想要的。但是,如果我写:
cout << '\u2780';
我得到:14851712。
问题是,我不知道在编译时要打印的确切字符。因此,我想做类似的事情:
int x;
// some calculations...
cout << (char)('\u2780' + x);
打印:�。使用 wcout 或 wchar_t 也不起作用。如何正确打印?
根据我在 Internet 上的发现,我使用直接来自 Debian Wheezy 存储库的 g++ 4.7.2 编译器似乎很重要。
【问题讨论】:
-
正在使用 wchar_t 和运算符
L吗?如果可能,请发布您的完整代码或 [sscce.org](SSCCE) -
如果您不想弄乱 Unicode 编码,可以使用表格将字符串映射到
x的可能值,而不是添加它。