You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C语言中正确打印表情符号?代码输出乱码该如何解决?

问题原因

你遇到的乱码是程序输出的UTF-8编码表情字符,被终端用非UTF-8编码(比如Windows默认的GBK编码)解析导致的,同时C程序默认未启用系统区域编码设置,也会导致输出编码异常。

解决步骤
  • 首先引入<locale.h>头文件,在程序初始化时调用setlocale函数启用系统默认区域编码,保证输出编码为系统匹配的UTF-8格式
  • Windows系统下运行程序前,先在终端执行chcp 65001命令,将终端代码页切换为UTF-8编码,同时将终端字体调整为支持Unicode表情的字体(如Consolas、思源黑体等)
  • Linux/macOS系统默认终端编码为UTF-8,无需额外调整终端配置,仅需修改代码即可正常显示
修正后的可运行代码
#include <stdio.h>
#include <locale.h>

int main()
{
    setlocale(LC_ALL, "");
    printf("\U0001F600"); // 输出😀表情
    return 0;
}
额外注意事项
  • 如果需要输出其他表情,替换对应的Unicode编码即可,比如😁对应\U0001F601,😂对应\U0001F602
  • 如果编译器不支持\U开头的Unicode转义序列,可直接将表情符号写入printf的字符串参数中,只需确保源代码文件保存为UTF-8无BOM格式即可正常编译运行

内容的提问来源于stack exchange,提问作者google user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 22:15:02