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

C++打印ASCII艺术字符异常:Visual Studio编码识别问题

解决控制台打印⣿类ASCII艺术字符显示问号的问题

我之前也碰到过一模一样的情况,这类带⣿的点阵字符其实属于Unicode里的盲文图案字符,不是传统的ASCII,所以Windows控制台默认配置和Visual Studio的项目设置很容易让它们显示成问号。这里给你几个亲测有效的解决思路:

  • 先给控制台切换到UTF-8编码
    在程序启动的最开始,先设置控制台的输出编码为UTF-8,这样它才能正确解析这类字符。

    • 如果你用C++,添加这段代码:
      #include <windows.h>
      // ...
      SetConsoleOutputCP(CP_UTF8);
      
    • 如果你用C#,则是:
      Console.OutputEncoding = System.Text.Encoding.UTF8;
      
  • 调整Visual Studio的项目字符集与源文件编码
    右键你的项目 → 属性 → 配置属性 → 常规,把「字符集」改成「使用Unicode字符集」(别选多字节,多字节对Unicode支持不好)。另外,确保你的源文件是用UTF-8编码保存的:点击VS顶部菜单的「文件」→「高级保存选项」,在编码里选「UTF-8」,这样硬编码在代码里的⣿字符才不会被编译时转成乱码。

  • 改用宽字符输出(针对C++)
    如果上面的方法还不行,试试用宽字符类型来存储和输出字符:

    #include <iostream>
    #include <windows.h>
    
    int main() {
        SetConsoleOutputCP(CP_UTF8);
        const wchar_t* art = L"⣿⣿⣿⣿";
        std::wcout << art << std::endl;
        return 0;
    }
    

    宽字符直接对应Unicode编码,能减少编码转换时的出错概率。

  • 检查控制台字体是否支持该字符
    有时候编码没问题,但控制台用的字体不支持盲文图案字符。右键控制台窗口标题栏 → 属性 → 字体,换成「Consolas」「Segoe UI Symbol」这类支持完整Unicode的字体,再试试输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:09:39