WIN10+MinGW中文输出乱码的解决方法

本文详细介绍了在Windows 10环境下使用Mingw时遇到的中文乱码问题,尤其是在终端显示中。文章提供了两种解决方案:一是通过system函数调用chcp 65001命令更改控制台代码页;二是使用SetConsoleOutputCP函数设置控制台输出为UTF-8。同时,强调源文件格式需为UTF-8。遗憾的是,对于中文输入问题,作者尚未找到有效解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在win10使用mingw可能会出现这种bug,实测win7是没有的!
在这里插入图片描述
可以看到,中文开头就会乱码。试过写文件,没有乱码,似乎是终端显示问题。

解决方案

#include <stdlib.h>
system("chcp 65001");

或者

#include <windows.h>
SetConsoleOutputCP(65001);

源文件格式得是utf-8
在这里插入图片描述

至于输入中文的问题,我至今没有找到解决方案。

### 下载 MinGW-w64 编译器套件 MinGW-w64 是一个用于 Windows 平台的开源编译器工具链,支持 32 位和 64 位应用程序开发。在 Windows 10 上下载 MinGW-w64 的推荐方式是通过其官方源或镜像站点获取预编译包。 一种常见且便捷的方式是访问 SourceForge 上的 MinGW-w64 项目页面或者使用由 GitHub 社区维护的下载链接[^4]。此外,也可以选择使用名为 `mingw-w64-install.exe` 的图形化安装程序来简化下载与安装过程,它允许用户根据目标平台(Win32/Win64)和线程模型(如 POSIX 或 Win32)进行定制化安装[^3]。 --- ### 安装 MinGW-w64 编译器套件 1. **运行安装程序** 如果选择了 `mingw-w64-install.exe` 进行安装,则需要运行该程序并按照提示选择合适的配置选项: - Architecture: 选择 x86_64(对于 64 位系统) - Threads: 推荐选择 posix - Exception: 对于 64 位通常选择 seh(Structure Exception Handling) 2. **指定安装路径** 建议将 MinGW-w64 安装到没有空格的路径下,例如 `C:\mingw64`,以避免某些构建脚本出现问题[^4]。 3. **等待下载与解压完成** 安装程序会自动从网络上下载所需的文件并将其解压到指定目录中[^3]。 --- ### 配置环境变量 为了能够在命令行界面全局访问 `gcc`, `g++`, `make` 等工具,需要将 MinGW-w64 的 `bin` 目录添加至系统的 PATH 环境变量中: - 打开“控制面板” > “系统和安全” > “系统” > “高级系统设置” - 在“高级”标签页点击“环境变量” - 在“系统变量”部分找到 `Path` 并点击“编辑” - 添加新条目,值为 `<安装路径>\bin`,例如 `C:\mingw64\bin` 修改完成后打开一个新的命令提示符窗口测试是否生效。 --- ### 验证安装 在命令行中分别输入以下命令验证 GCC 和 G++ 是否正确安装: ```bash gcc --version g++ --version ``` 如果看到版本信息输出,则表示 MinGW-w64 已经成功安装并且可以正常使用了[^2]。 --- ### 在 VS Code 中配置 MinGW-w64 若计划使用 Visual Studio Code 进行 C/C++ 开发,还需要对编辑器进行适当配置: 1. 安装 VS Code 及其官方 C/C++ 插件。 2. 创建 `.vscode/tasks.json` 文件,并定义构建任务指向正确的 `gcc` 或 `g++` 可执行文件位置。 3. 设置调试器,在 `.vscode/launch.json` 中配置 gdb 调试器路径。 4. 确保所有相关文件中的编译器路径与实际安装位置一致。 当一切配置完毕后,可以通过终端菜单中的【运行生成任务】功能启动编译流程[^5]。 --- ### 解决中文乱码问题 如果在 VS Code 终端中遇到中文字符显示异常的问题,可以在终端设置中更改编码格式为 UTF-8 或者 GBK 来解决此问题[^4]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值