3

如何在 C++11 中将( cout/ / ...) char32_t 打印到控制台?wcout

以下代码打印十六进制值:

u32string s2 = U"Добрый день";
for(auto x:s2){
    wcout<<(char32_t)x<<endl;
}
4

2 回答 2

4

首先,我认为除了and之外不wcout应该打印任何字符。也不是。charwchar_tchar32_t

这是一个打印 individual 的示例程序wchar_t's

#include <iostream>

using namespace std;

int main()
{
  wcout << (wchar_t)0x41 << endl;
  return 0;
}

输出(ideone):

A

目前,即使在主要操作系统中,也不可能在控制台中获得一致的 Unicode 输出。cout通过, wcout,printf()等简单的Unicode 文本输出wprintf()在没有重大黑客攻击的情况下无法在 Windows 上运行。在 Windows 控制台中获取可读的 Unicode 文本的问题在于拥有并且能够选择正确的 Unicode 字体。Windows 的控制台在这方面非常糟糕。请参阅我的这个答案并点击其中的链接。

于 2013-04-07T01:29:38.503 回答
3
于 2019-06-19T22:44:41.647 回答