C++ 库特<<&引用привет&“;;或wcout<&书信电报;L"привет&“;;

C++ 库特<<&引用привет&“;;或wcout<&书信电报;L"привет&“;;,c++,linux,unicode,console-application,C++,Linux,Unicode,Console Application,为什么 GCC和Clang默认将源文件视为UTF-8。您的Linux终端很可能也配置为UTF-8。所以使用coutpreasembly,因为任何接收这些字符作为输出的东西“都不理解宽字符”。如果你再多描述一点“不起作用”,可能会有帮助。它打印????而是在终端窗口中。但是,“ППцццццц”如何可以是unicode?谢谢。然而,令人惊讶的是,“Пцццццццц”不是标准文字,它应该是char[]@MinimusHeximus:“Пцццццццццццц”在UTF-8中默认为char[],输

为什么


GCC和Clang默认将源文件视为UTF-8。您的Linux终端很可能也配置为UTF-8。所以使用
coutpreasembly,因为任何接收这些字符作为输出的东西“都不理解宽字符”。如果你再多描述一点“不起作用”,可能会有帮助。它打印????而是在终端窗口中。但是,“ППцццццц”如何可以是unicode?谢谢。然而,令人惊讶的是,“Пцццццццц”不是标准文字,它应该是
char[]
@MinimusHeximus:“Пцццццццццццц”在UTF-8中默认为char[],输出此错误:
在抛出“std::runtime\u error”的实例后调用terminate what():locale::facet::\u S\u create\u c\u locale name无效
@So?问题是关于Linux的。如果您的GCC端口没有“en_US.UTF-8”区域设置,则捕获异常并使用
std::locale::global(std::locale(“”))或安装区域设置。
cout<< "привет";
wcout<< L"привет";
#include <iostream>
#include <locale>
using namespace std;
int main() {
  std::locale::global (std::locale ("en_US.UTF-8"));
  wcout << L"привет\n";
}