我試圖讓我在那裏做萊尼跳碼,但在lenny的臉這樣的:(͡°͜ʖ͡°)如何在Linux上使用ncurses顯示特殊字符?
當編譯&運行的代碼(G ++ -o萊尼main.cpp中),我得到輸出「(͡° 〜\ 〜͡°)」。有什麼方法可以讓它顯示(͡°͜ʖ͡°)?
我試圖讓我在那裏做萊尼跳碼,但在lenny的臉這樣的:(͡°͜ʖ͡°)如何在Linux上使用ncurses顯示特殊字符?
當編譯&運行的代碼(G ++ -o萊尼main.cpp中),我得到輸出「(͡° 〜\ 〜͡°)」。有什麼方法可以讓它顯示(͡°͜ʖ͡°)?
Linux有良好的Unicode支持,你不需要任何特殊的圖書館,如果你正在做的是輸出:
#include <iostream>
int main()
{
std::cout << "(͡° ͜ʖ ͡°)\n";
}
或者,你不能依賴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";
}
編輯:根據您在註釋中的代碼,您的問題實際上是關於ncurses庫I/O,而不是關於C++。爲了讓您的工作方案符合預期,
setlocale(LC_ALL, "en_US.utf8");
靠近你main()
的開始(並添加#include <clocale>
相應)-lncursesw
,而不是-lncurses
,如果這是你使用的是什麼。第二個會使用ncurses嗎? – Predictability
發佈您的代碼。 – Pubby
http://codepad.org/z6MnmwcD – Predictability
@Predictability最好在您的Stackoverflow帖子中包含源代碼。你可以做一個最小的完整的程序,只打印一個有問題的行,它會使實際的修復變得明顯。 – Cubbi