《从零开始学C语言:Visual Studio Code+MinGW-w64》第1集

发布时间:2026/7/8 10:03:19

《从零开始学C语言:Visual Studio Code+MinGW-w64》第1集 第1集《新手踩坑记我是如何在PowerShell中永久解决C程序中文乱码的》一、原代码及其编译运行1、原代吗2、编译运行在终端编译运行输出的中文乱码二、尝试过的解决方案可选有一定参考价值如果你觉得这部分太长也可以直接跳到“三、最终方案”。1、修改代码添加 SetConsoleOutputCP(65001);虽然理论上可行但可能因控制台字体或PowerShell内部编码设置导致仍然乱码。2、手动执行chcp 65001切换代码页临时有效但每次打开新窗口都要执行不够方便。3、修改控制台字体我的PowerShell字体列表为空无法修改。4、使用VS Code内置终端默认情况下可能仍然乱码因为终端继承PowerShell的编码设置。三、最终方案步骤1创建PowerShell配置文件如果不存在powershell中分别输入以下三行$profileDir Split-Path $PROFILE -ParentNew-Item -ItemType Directory -Path $profileDir -Forcenotepad $PROFILE如果弹出“找不到文件是否创建”的提示点击“是”。步骤2在配置文件中添加编码设置在打开的记事本中粘贴以下两行[Console]::OutputEncoding [System.Text.Encoding]::UTF8$OutputEncoding [System.Text.Encoding]::UTF8保存并关闭记事本。步骤3允许PowerShell执行本地脚本powershell中输入Set-ExecutionPolicy RemoteSigned -Scope CurrentUser输入Y确认。步骤4立即生效powershell中输入. $PROFILE步骤5验证编码设置powershell中分别输入以下两行[Console]::OutputEncoding$OutputEncoding输出应显示EncodingName: Unicode (UTF-8)。步骤6重新编译运行程序powershell中分别输入以下两行gcc test.c -o test.exe.\test.exe最终显示四、乱码原因简单解释一下为什么会乱码以及上述设置做了什么编码不一致源文件是UTF-8而Windows控制台默认使用GBK解码导致乱码。[Console]::OutputEncoding控制控制台输出时使用的编码设为UTF-8后程序输出的UTF-8字节流就能被正确解码。$OutputEncoding控制PowerShell向外部命令发送数据时的编码设为UTF-8可以避免其他潜在问题。配置文件让设置持久化每次启动PowerShell自动生效。

相关新闻