C++ &引用;";无法使用汉字

C++ &引用;";无法使用汉字,c++,character,cout,C++,Character,Cout,我的代码如下所示: #include <iostream> using namespace std; //Some codes here... bool somefunction(){ cout<<"单元格"; return false; } #包括 使用名称空间std; //这里有一些代码。。。 布尔函数{ cout要使用非英语字符集,您应该使用std::wcout打印宽字符,如下所示 #include <iostream> using n

我的代码如下所示:

#include <iostream>
using namespace std;
//Some codes here...
bool somefunction(){
    cout<<"单元格";
    return false;
}
#包括
使用名称空间std;
//这里有一些代码。。。
布尔函数{

cout要使用非英语字符集,您应该使用
std::wcout
打印宽字符,如下所示

#include <iostream>
using namespace std;
//Some codes here...
bool somefunction(){
  wcout<< L"单元格";
  return false;
}
#包括
使用名称空间std;
//这里有一些代码。。。
布尔函数{

wcout编译器错误表明您的编译器不支持源代码中的Unicode字符。您必须对其进行转义,使用宽字符常量,然后
wcout

wcout << L"\x5355\x5143\x683c";

wcout使用wcout和Unicode文本(L)单元格"). 这是一个很好的实践,即使你只处理英文字符。也要使用wstring

编辑:实际上,另一个问题可能是您正在以非Unicode编码存储文件,因此字符丢失。请告诉您的编辑器将文件存储为Unicode


另一个问题可能是控制台(或wcout)无法正确显示Unicode字符。如果在消息框中显示Unicode字符(使用MessageBoxW)它们显示正确。

您应该始终使用BOM将源代码保存为UTF-8。

我认为您的编译器不理解源文件的编码方式。您希望发生什么事情?您希望的是多字节字符串吗?还是希望编译器输出UTF-8字符串?请尝试
std::wcout
相反,据我所知:)只是地球这一部分的夜间时间。在这种情况下,使用
cout
wcout
并不重要。代码无法编译,因为编译器阻塞了编写的字符串(即在给定的字符集中)宽字符串(L“”)不一定是Unicode。取决于操作系统、编译器等。
wcout << L"\x5355\x5143\x683c";
cout << "\xb5\xa5\xd4\xaa\xb8\xf1"; // string encoded with GB2312