我正在 Linux 环境下用 C++ 开发国际象棋游戏,并且想在 bash 终端中使用 unicode 字符显示棋子。有没有办法使用cout显示符号?
输出骑士的例子就很好:♞ = U+265E。
要输出 Unicode 字符,只需使用输出流,就像输出 ASCII 字符一样。您可以将 Unicode 代码点存储为多字符字符串:
std::string str = "\u265E";
std::cout << str << std::endl;
如果您想输出代码点高于 ASCII 范围的单个 Unicode 字符,那么使用宽字符输出也可能很方便:
setlocale(LC_ALL, "en_US.UTF-8");
wchar_t codepoint = 0x265E;
std::wcout << codepoint << std::endl;
然而,正如其他人所指出的,是否正确显示取决于用户环境中的很多因素,例如用户的终端是否支持 Unicode 显示、用户是否安装了正确的字体等。这应该对于大多数开箱即用的主流发行版(例如安装了 Gnome 的 Ubuntu/Debian)来说这不是问题,但不要指望它在任何地方都能工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)