可以命令提示符显示unicode字符?

例如:

cout << "你好" << endl; 

Solutions Collecting From Web of "可以命令提示符显示unicode字符?"

它取决于平台和命令提示符的编码。

也就是说,你可能会有更多的运气

 std::wcout << L"你好" << std::endl; 

既然你在说Windows,你正在谈论控制台窗口

Windows控制台窗口是基于Unicode的,更具体地说是UCS-2(基本多语言平面,基本上是原始的16位Unicode)。

与其他答案中的建议相反,你不能再做更多的事情。 结果与std::wcoutstd::cout 。 标准的宽输出流只是转化为程序的单字节执行字符编码。 在Windows中,默认情况下是OEM字符编码(可以通过未公开的注册表键配置)。

但是您可以通过Windows API的控制台功能输出Unicode。

注意: 将控制台窗口设置为UTF-8并不是一个好主意 。 然后,[cmd.exe]命令解释器只是静静地忽略大多数命令。 至少在Windows XP和更早版本中。

我只是将OEM设置为Windows ANSI西方(通过提到的未公开的注册表项),它适用于大多数目的,但当然不是中文。 它是代码页1252.另外,你也可以在每个命令解释器实例中通过命令chcp 1252手动执行,也可以通过其他方法。

干杯&hth。,

取决于操作系统和实现。 目前活跃的C ++标准甚至不谈Unicode。

在Windows上,我相信你可以使用宽字符版本。 您的代码将需要是:

 std::wcout << L"ni3 hao3" << std::endl; 

但是,您可能必须专门输入Unicode字符代码,因为您用来编写C ++源代码集可能不是Unicode。

这一切都取决于您使用的控制台/外壳。

有些shell可以配置为使用UTF-8(我很久以前就做过),所以可以完成,但我忘记了细节。

在一个人真的可以更具体了之前,我们需要知道你正在使用的shell,以及shell运行在什么平台下(每个版本都有完整的细节)。

Windows控制台部分支持Unicode。 它不支持,例如,从右到左的语言。

您的示例与cout不输出Unicode。 改用wcout 。 或者使用WriteConsoleW