当前位置: 首页 > news >正文

《从零开始学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 -Parent
New-Item -ItemType Directory -Path $profileDir -Force
notepad $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自动生效。

http://www.jsqmd.com/news/495269/

相关文章:

  • 定位洞察者开刊词:在这个喧嚣的世界,我想陪你找准位置
  • 【datawhale】hello agents开源课程第1章学习记录:初识智能体
  • 新能源重卡充换电站运营云管理系统
  • 2026年 夹芯板生产线厂家推荐排行榜,EPS/聚氨酯/岩棉复合板、冷库板、净化板、钢筋网片焊接、聚氨酯/AAC砌块生产线全解析 - 品牌企业推荐师(官方)
  • 从GEO到AEO:AI智能体时代,品牌推广的技术范式跃迁
  • Docker——镜像
  • 吹膜厚度波动>±5μm?母粒MFI离散度所致!福尔蒂IQC数据中台实时监控
  • 如何将Win10的未分配的磁盘空间合并到C盘?手把手教你3种方法
  • OpenClaw (龙虾) Windows 安装完全指南
  • 问卷设计“智”变:书匠策AI如何重塑科研调研新生态?
  • 基于Python+wxPython+Paramiko打造win环境下Linux远程日志实时监控工具
  • Qt 数据库从入门到实战:关键知识点总结
  • COMSOL仿真研究热电制冷与半导体制冷TEC技术:脉冲电流、温度分布与冷段温度变化分析
  • MySQL EXPLAIN 中 type 字段详解
  • 【2026年-10期】Build a full-dimensional trust system for AI
  • Linux(Ubuntu)部署Ollama+Qwen(千问)本地大模型实战01
  • 如何减少全员群IT吐槽?
  • 收藏!小白/程序员必看:手把手教你理解和搭建RAG知识库,从入门到精通
  • 计算机毕业设计之ssm社区老人服务管理系统
  • 第 15 篇 音频驱动适配与调试,ALSA 架构详解
  • javakotlin listener
  • 放眼全球|国际知名半导体核心部件展会推荐,2026参展攻略 - 品牌2025
  • PPT给电镜图元素单独上色—让SEM/TEM图,从“灰”变“高级”
  • 1143 最长公共子序列
  • Linux系统部署:Certbot 实现 Nginx 自动续期部署 Let‘s Encrypt 免费 SSL 证书
  • CMake二、带文件多文件编译
  • 冷酷的兔先生是谁,以及我为什么只研究兔子降温
  • 2026年重庆挑选家具哪家性价比高?源点宜联购给出答案 - mypinpai
  • Maven多模块开发实战:从单体到微服务架构的优雅构建之路
  • AI聊天机器人安全漏洞:暴力诱导与风险警示