作者:互联网 时间: 2026-07-29 08:04:56
Codex 客户端编写代码时出现中文乱码,并非 Codex 本身导致,而是 Windows 系统终端默认采用 GBK 编码,PowerShell 5 尤其如此;Codex 生成内容则基于 UTF-8,两者编码不一致便会产生乱码。下面给出系统性处理方案
将终端、编辑器及文件操作的全链路编码统一为 UTF-8(无 BOM)。
默认编码方面,GBK 对应 PowerShell 5,UTF-8 则由 PowerShell 7 默认支持。
运行前先进入 Windows Terminal 或打开命令提示符:
winget install --id Microsoft.Powershell
完成安装后输入 pwsh 版本验证需在 PowerShell 7 启动后进行:
$PSVersionTable.PSVersion
应当输出 7.x,同时 PSEdition 应显示为 Core。
编辑 PowerShell 配置文件(Profile):
在 PowerShell 7 内运行:
New-Item -Path $PROFILE -ItemType File -Force notepad $PROFILE
粘贴下列内容后保存:
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'
验证编码前,先将 PowerShell 7 重启:
[Console]::OutputEncoding
应当显示为 UTF-8。
打开 VS Code 设置(Ctrl + ,),再切换至 settings.json,然后添加:
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true,
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.profiles.windows": {
"PowerShell": {
"path": "C:Program FilesPowerShell7pwsh.exe"
}
}
}
按 Ctrl + Shift + P,输入 Terminal: Select Default Profile,选择 PowerShell。
强制指定 UTF-8 后,再向 Codex 发出指令,例如:
“请编辑此文件,要求:文件编码为 UTF-8(无 BOM),中文注释直接输出,禁止 uXXXX 转义,写入时使用 UTF-8 编码。”
在项目根目录新建 .editorconfig 文件:
root = true [*] charset = utf-8 end_of_line = lf
不要依赖 chcp 65001 进行临时切换(只对当前会话生效)。
应避免使用 > 或者 Out-File 写入文件(默认会生成 UTF-16)。
建议使用 Set-Content -Encoding utf8 或者 Add-Content -Encoding utf8。
在 VS Code 终端中运行:
[Console]::OutputEncoding
显示 UTF-8 便代表终端编码无误。
保存由 Codex 生成的代码后,检查其中的中文内容(如注释)是否显示正常。
Codex 中文乱码问题中,90% 以上可在上述配置全部完成后被彻底解决。