Codex 中文乱码不是 Codex 的 bug。根因是 Windows 终端默认编码体系(历史代码页)与现代 CLI 工具(UTF-8)不一致。
唯一正确的解决方向:
使用 PowerShell 7(pwsh)+ 明确 UTF-8 输出, 让 Windows CLI 行为对齐 Linux / macOS 的默认假设。
导致链路如下:
Codex(UTF-8) → Windows Console(GBK / 936) → VS Code 终端 → 中文乱码
对比总结:
工具 | 定位 |
|---|---|
cmd | 兼容层 |
PowerShell 5.1 | 系统管理遗产 |
pwsh(PowerShell 7) | 现代开发者终端 |
Linux / macOS 默认:
locale = UTF-8
终端 = UTF-8
Shell = UTF-8
CLI = UTF-8Windows(默认):
GUI = Unicode
CLI = 历史代码页Linux 无需声明, Windows 必须显式声明 UTF-8。
winget install --id Microsoft.PowerShell验证:
pwsh --versionpwsh验证:
$PSVersionTable.PSEdition必须输出:
CoreNew-Item -ItemType File -Path $PROFILE -Forcenotepad $PROFILE[Console]::InputEncoding = [System.Text.UTF8Encoding]::new()
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
$OutputEncoding = [System.Text.UTF8Encoding]::new()保存并关闭。
[Console]::OutputEncoding.CodePage必须输出:
65001操作:
验证:
$PSVersionTable.PSEdition输出应为:
Core