3

我正在尝试编写一个让 Lenny 跳跃的代码,但 lenny 面对这个:(͡° ͜ʖ ͡°)

当编译和运行代码(g++ -o Lenny main.cpp)时,我得到输出“(͡°�~\�~V͡°)”。有没有办法让它显示(͡°͜ʖ͡°)?

4

2 回答 2

0

Linux 具有良好的 Unicode 支持,如果您所做的只是输出,则不需要任何特殊库:

#include <iostream>
int main()
{
    std::cout << "( ͡° ͜ʖ ͡°)\n";
}

在线演示:http: //ideone.com/UUS6Il

或者,您不能依赖 Linux 的内置 UTF-8 并明确说明它:

#include <iostream>
#include <locale>
int main()
{
    std::locale::global(std::locale("en_US.utf8"));
    std::wcout.imbue(std::locale());
    std::wcout << L"( ͡° ͜ʖ ͡°)\n";
}

在线演示:http: //ideone.com/EhTfB9

编辑:根据您在评论中的代码,您的问题实际上是关于 ncurses 库 I/O,而不是关于 C++。为了让您的程序按预期工作,

  1. setlocale(LC_ALL, "en_US.utf8");在您的开头附近添加该行main()(并#include <clocale>相应添加)
  2. 更改要使用的链接线-lncursesw,而不是-lncurses您正在使用的链接线。
于 2012-12-03T03:06:37.250 回答
0

您正在处理 Unicode 字符。你可以使用这个库:ICU

在这里查看更多:

于 2012-12-03T02:52:00.083 回答