Codex 修改文件导致中文乱码的解决办法
Codex 修改文件导致中文乱码的解决办法
很多人遇到 Codex 修改文件后出现中文乱码时,会以为是 VS Code 的问题。但实际上,Codex 在修改文件时,并不是直接在 VS Code 编辑器里写,而是通过终端执行命令来修改文件。
也就是说:
Codex 先在终端里运行类似 echo、sed、powershell 的命令
这些命令执行后把修改写入文件
文件再被 VS Code 打开
所以,如果 终端本身的编码不是 UTF-8,那么命令执行时就可能把中文写成错误的字节序列,导致打开文件时出现乱码。
👉 因此,问题根源在于:编辑器编码 和 终端编码 必须保持一致。
在使用 Codex 修改文件时,有时会出现 中文乱码 的情况。经过排查,我发现主要有两个问题点:
- VS Code 的文件编码设置不对
- 终端(命令行)默认编码不是 UTF-8
这两个问题叠加后,Codex 修改命令输出的文件再被终端/编辑器打开,就很容易出现乱码。下面是我的解决步骤。
每个人根据自己电脑的不一样来进行解决,命令行读取文件不要有问题,然后输出也不要有问题就好了。
1. VS Code 修改配置
首先,确保 VS Code 的默认文件编码是 UTF-8。
打开 VS Code 设置(Ctrl + ,),在 settings.json 里增加以下配置:
"files.encoding": "utf8",
"files.autoGuessEncoding": true
files.encoding: 默认使用 UTF-8 保存文件files.autoGuessEncoding: 打开文件时自动检测是否存在 BOM/其他编码

这样 VS Code 打开和保存文件时,都能尽量保持编码一致。
2. 终端编码修改(PowerShell/命令行)
步骤 1:先查看自己使用的 PowerShell 版本
在终端执行:
$PSVersionTable.PSVersion
- 如果是
5.x→ 说明你在用 Windows 自带的 Windows PowerShell(旧版)。 - 如果是
7.x→ 说明你在用 PowerShell 7 (pwsh)(新版,建议用这个)。
不同版本的配置文件路径不一样,后面修改时要对应。
步骤 2:检查 profile 文件路径
在终端输入:
$PROFILE
它会显示当前版本 PowerShell 的配置文件路径,比如:
-
Windows PowerShell 5.1
C:\Users\<用户名>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 -
PowerShell 7
C:\Users\<用户名>\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
步骤 3:如果文件不存在,先创建
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Force -Path $PROFILE
}
步骤 4:写入 UTF-8 初始化配置
执行以下命令,把 UTF-8 配置写入 profile 文件:
$utf8Block = @'
chcp 65001 | Out-Null
[Console]::InputEncoding = [System.Text.UTF8Encoding]::new()
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
$OutputEncoding = [System.Text.UTF8Encoding]::new()
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
$PSDefaultParameterValues['Set-Content:Encoding'] = 'utf8'
$PSDefaultParameterValues['Add-Content:Encoding'] = 'utf8'
'@
Add-Content -Path $PROFILE -Value $utf8Block -Encoding UTF8
如果还有报错,那说明修改的是5.1版本的写入有问题,有人反馈了一下命令还是乱码,可能是5.1版本的windows命令
Windows PowerShell 5.1 里,UTF8 实际上会写成 UTF-8 with BOM。
结果就是:虽然你指定了 UTF-8,但多了 BOM 头,VS Code 或 Codex 再读时,就可能出现 �? 这种乱码现象。这个地方建议升级7,如果不想升级那么需要修改一下这个函数,
$utf8Block = @'
chcp 65001 | Out-Null
[Console]::InputEncoding = [System.Text.UTF8Encoding]::new()
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
$OutputEncoding = [System.Text.UTF8Encoding]::new()
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
$PSDefaultParameterValues['Set-Content:Encoding'] = 'utf8'
$PSDefaultParameterValues['Add-Content:Encoding'] = 'utf8'
'@
# 先读取现有 profile 内容(如果有)
$profileContent = ""
if (Test-Path $PROFILE) {
$profileContent = Get-Content -Path $PROFILE -Raw
}
# 如果还没写过,就追加一份,确保文件保存为 UTF-8 无 BOM
if ($profileContent -notmatch 'Console::OutputEncoding') {
$newContent = $profileContent + "`r`n" + $utf8Block
[System.IO.File]::WriteAllText($PROFILE, $newContent, (New-Object System.Text.UTF8Encoding($false)))
}
步骤 5:让配置立即生效
. $PROFILE
如果不想立即生效,也可以直接关闭终端 → 重新打开。
步骤 6:验证终端是否是 UTF-8
'中文测试' | Set-Content -Path .\utf8_test.txt
Get-Content .\utf8_test.txt
能正常显示 中文测试,说明配置成功 ✅。
3. 总结
Codex 修改文件乱码问题,根源是 编辑器编码 + 终端编码 不一致。解决步骤:
- VS Code 配置文件编码 → 保证保存时统一为 UTF-8
- 终端强制 UTF-8 → 编辑
Profile.ps1,让 PowerShell 始终用 UTF-8- Windows PowerShell 5.1:
Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 - PowerShell 7:
Documents\PowerShell\Microsoft.PowerShell_profile.ps1
- Windows PowerShell 5.1:
4. 其他终端设置 UTF-8
4.1 Windows CMD
CMD 默认编码通常是本地代码页(比如 936 = GBK),会导致中文显示异常。
解决方法:
chcp 65001
- 立即把当前 CMD 的代码页改为 UTF-8。
- 但注意:只对当前窗口有效,关闭再开需要重新执行。
如果想每次 CMD 打开都生效,可以写一个批处理脚本,或者在注册表里修改默认代码页(不建议新手动系统配置,推荐用 PowerShell 方式)。
4.2 Git Bash
Git Bash 本身是基于 MinGW 的 bash,通常默认编码是 UTF-8,不会有大问题。
但如果遇到中文乱码,可以在 ~/.bashrc 或 ~/.bash_profile 文件里加上:
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
然后执行:
source ~/.bashrc
这样 Git Bash 就会强制使用 UTF-8。
5. 总结
- VS Code:设置
"files.encoding": "utf8"保证保存文件时统一编码。 - PowerShell:修改 Profile.ps1,确保输入输出默认 UTF-8。
- CMD:临时用
chcp 65001切换编码。 - Git Bash:通过
~/.bashrc设置语言环境为 UTF-8。
这样,不管是 Codex 修改文件,还是你自己手动写代码,中文文件都能避免乱码问题 ✅。
如果还是不行,建议升级power shell7来作为vscode的默认客户端
q群581851204 一块讨论一些ai编程得问题
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)