在Windows控制台应用程序中输出unicode字符串
嗨,我试图将unicode字符串输出到具有iostream的控制台,但失败了。 我发现了这一点: 在c ++控制台应用程序中使用unicode字体 ,此代码段有效。 SetConsoleOutputCP(CP_UTF8); wchar_t s[] = L"èéøÞǽлљΣæča"; int bufferSize = WideCharToMultiByte(CP_UTF8, 0, s, -1, NULL, 0, NULL, NULL); char* m = new char[bufferSize]; WideCharToMultiByte(CP_UTF8, 0, s, -1, m, bufferSize, NULL, NULL); wprintf(L"%S", m); 但是,我没有找到任何方法可以使用iostreams正确输出unicode。有什么建议? 这不起作用: SetConsoleOutputCP(CP_UTF8); utf8_locale = locale(old_locale,new boost::program_options::detail::utf8_codecvt_facet()); wcout.imbue(utf8_locale); wcout << L"¡Hola!" << endl; 编辑 …