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

VS2022中C++输出格鲁吉亚文显示乱码问题求助

解决Visual Studio 2022中C++输出格鲁吉亚文显示问号的问题

出现问号的核心原因有两个:

  1. 终端编码不匹配:Windows默认终端(cmd/PowerShell)通常采用GBK或OEM编码,不支持UTF-8字符输出,即便代码用UTF-8编译,终端无法解析就会显示问号。
  2. 标准输出流编码未同步:C++的cout默认采用系统本地编码输出,即便源码是UTF-8,输出时也会被转成终端不兼容的编码格式。

一、临时切换终端编码

  • cmd环境:运行程序前,先在cmd中执行chcp 65001,将终端编码切换为UTF-8,再运行生成的exe文件。
  • PowerShell环境:执行[Console]::OutputEncoding = [System.Text.Encoding]::UTF8,临时设置输出编码为UTF-8。

二、代码层面强制UTF-8输出

直接在代码中调用Windows API设置控制台输出编码,确保程序启动时就把终端编码切换为UTF-8,修改后的代码如下:

#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
    // 设置控制台输出编码为UTF-8
    SetConsoleOutputCP(CP_UTF8);
    cout << "შეიყვანე პირველი ციფრი : ";
    return 0;
}

三、Visual Studio项目设置补充

  1. 确认源码文件编码:右键项目中的cpp文件→高级保存选项→选择UTF-8 (无签名)或UTF-8 (带签名),确保源码本身是UTF-8编码。
  2. 保留/utf-8编译参数:在C/C++属性页→命令行→添加/utf-8,保证编译器以UTF-8解析源码。
  3. 调试终端设置:项目属性→调试→控制台类型,选择Windows终端(如果已安装),它默认支持UTF-8;若用传统控制台,需确保终端启动时自动切换编码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:50:59