如何在Windows 10的控制台应用程序中使用C ++显示Unicode补充字符(> U + FFFF)? (如果可能,则不使用winrt)

时间:2019-06-22 14:54:59

标签: c++ winapi utf-8 utf-16 windows-console

USC2字符似乎与wchar_t兼容。
但是,当一个代码点大于U+FFFF时,它就不起作用。

#include <iostream>
#include <fcntl.h>
#include <io.h>

int main()
{
  _setmode( _fileno(stdout), _O_U8TEXT ); // _O_WTEXT has no difference
  std::wcout.sync_with_stdio(false);
  std::wcout << L"z\u00df\u6c34\U0001F34C\n" << std::endl;  // L"zß水?"
}

打印如下:

zß水�

如何在Windows的控制台应用程序上打印SMP字符?
如果没有C++/WinRT,有可能吗?

0 个答案:

没有答案