c++ - 如何在 Windows 上从 C++ 控制台应用程序打印 UTF-8

标签 c++ utf-8 console-application

对于在英语 Windows(XP、Vista 或 7)上使用 Visual Studio 2008 编译的 C++ 控制台应用程序。是否可以打印到控制台并使用 cout 或 wcout 正确显示 UTF-8 编码的日文?

最佳答案

这应该有效:

#include <cstdio>
#include <windows.h>

#pragma execution_character_set( "utf-8" )

int main()
{
    SetConsoleOutputCP( 65001 );
    printf( "Testing unicode -- English -- Ελληνικά -- Español -- Русский. aäbcdefghijklmnoöpqrsßtuüvwxyz\n" );
}

不知道它是否会影响任何东西,但源文件保存为 Unicode(带有签名的 UTF-8)- Codepage 65001 at FILE -> 高级保存选项 ...

项目 -> 属性 -> 配置属性 -> 常规 -> 字符集 设置为使用 Unicode 字符集

有人说您需要将控制台字体更改为 Lucida Console,但在我这边显示的是 ConsolasLucida Console

关于c++ - 如何在 Windows 上从 C++ 控制台应用程序打印 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38861910/

相关文章:

c++ - std::function 作为关联容器中的键

encoding - 操作系统如何知道文件的编码

php - 无法获取 UTF-8 特殊字符以正确写入 MySQL (PHP)

php - 使用 CakePHP 的 UTF-8 MySQL 表中的 Windows 1252 数据

swift - 如何 grep 使用 RunLoop 的 macOS 控制台应用程序的标准输出

c++ - 如何在 C++ 中使用 system() 显示文件内容?

c++ - 派生类的模板参数推导

c++ - SIMD 值的合理散列?

c# - Console.WriteLine 在 Windows 10 上停止执行,直到我按 Enter 键

c# - 如何在 C# 中以编程方式关闭 Windows XP Print Spooler 服务