彻底告别中文乱码:Codex 修改文件后的终极解决方案
问题的痛点:当 AI 遇上乱码
在日常开发中,越来越多的开发者开始使用 Codex 等 AI 编程辅助工具。然而,不少人在享受 AI 带来的效率提升时,却遇到了一个令人头疼的问题:每当 Codex 自动修改文件后,原本清晰的中文注释或字符串突然变成了满屏的乱码(Mojibake)。
很多同学的第一反应是:"一定是我的 VS Code 编码设置不对!" 于是对着 VS Code 的 files.encoding 一通乱改,结果却往往收效甚微。今天,我们就来揭开这个问题的真相:根源其实不在 VS Code,而是在你的终端编码。

误区:乱码真的是 VS Code 的锅吗?
大多数现代代码编辑器(包括 VS Code)默认都采用 UTF-8 编码,这是国际通用的标准。当你发现文件保存后乱码,通常是因为处理文件的“幕后黑手”——即插件运行所在的终端环境——并没有使用相同的语言“交流”。
对于 Windows 用户来说,罪魁祸首通常是 PowerShell 或 CMD,它们在中文环境下默认使用的是 GBK (CP936) 编码。当 Codex 通过终端调用某些脚本或命令行工具来修改文件时,如果终端用 GBK 编码去读取或写入 UTF-8 的内容,乱码就此产生。
核心原因:终端与编辑器的“语言障碍”
简单来说,这是一场由于“跨语言交流”引发的误会:
- VS Code:我用的是 UTF-8。
- Codex 插件:我通过系统终端来执行修改指令。
- PowerShell (默认状态):我是 GBK 编码。当你传给我一段 UTF-8 的中文时,我会把它当成 GBK 解析,修改后再存回去,文件就彻底坏了。
因此,要解决这个问题,我们必须实现双端统一,即将编辑器和终端全部强制指定为 UTF-8。
解决方案:双端统一为 UTF-8
请按照以下两个步骤进行操作,即可彻底解决此问题。
第一步:确保 VS Code 全局配置为 UTF-8
虽然大部分 VS Code 安装后默认就是 UTF-8,但为了保险起见,建议手动确认:
- 打开 VS Code 设置 (
Ctrl + ,)。 - 搜索
files.encoding。 - 确保该项设置为
utf8。 - 另外,建议勾选
Files: Guess Character Set Encoding,让编辑器具备更好的自动识别能力。
第二步:配置 PowerShell 终端编码(最关键的一步!)
这是解决问题的核心。我们需要确保 PowerShell 每次启动时都自动切换到 UTF-8 模式。
1. 确认你使用的是哪个 PowerShell
Windows 10/11 通常自带两个版本的 PowerShell:
- Windows PowerShell (版本 5.1)
- PowerShell Core (版本 7.x,需要自行安装,通常图标是蓝黑色的)
2. 修改 PowerShell 配置文件 ($PROFILE)
我们需要在 PowerShell 的启动配置文件中加入切换编码的命令。
-
在 VS Code 终端中输入以下命令,查看你的配置文件路径:
$PROFILE -
如果提示文件不存在,可以手动创建一个。通常路径位于
Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1。 -
使用记事本或 VS Code 打开该文件,并在末尾添加以下内容:
# 设置终端输出和输入编码为 UTF-8 [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 [Console]::InputEncoding = [System.Text.Encoding]::UTF8 # 针对特定命令行的设置(可选) $OutputEncoding = [System.Text.Encoding]::UTF8
3. 临时测试方案
如果你不想修改配置文件,可以先在终端输入以下命令立即生效,观察乱码是否消失:
chcp 65001
注:65001 是 UTF-8 的代码页标识。
总结与验证
完成上述配置后,请重启 VS Code。此时再尝试让 Codex 或其他 AI 插件修改代码,你会发现中文字符已经能够被完美保留了。
总结一下:
- 编辑器编码是基础,必须设为 UTF-8。
- 系统终端编码是桥梁,如果桥梁“漏风”(GBK),数据就会损坏。
- 通过修改
$PROFILE强制终端开启 UTF-8 是 Windows 开发者的必备技能。
希望这篇指南能帮你解决困扰已久的乱码问题。如果你在配置过程中遇到任何疑问,欢迎在评论区留言讨论!