首页 > 解决方案 > 在 Windows 上使用 wprintf() 打印表情符号

问题描述

#include <locale.h>
#include <stdio.h>
#include <wchar.h>

int main() {
    setlocale(LC_CTYPE, "");
    wprintf(L"٩(◕‿◕。)۶\n");
    wprintf(L"\n");
    return 0;
}

上面的代码完全按照预期在 linux 上运行:

$ ./a.out
٩(◕‿◕。)۶

但在窗户上完全断裂:

PS> ./a.exe
()

为什么会这样?那么,我该如何在 Windows 上打印表情符号?

我在 Windows 上使用带有 gcc 9.2.0 的 powershell,在用于 linux 的 powershell 上使用带有 gcc 9.3.0 的 WSL。

标签: cwindowsgccprintf

解决方案


推荐阅读