许多 Windows 用户在运行 Codex 客户端 时,经常遇到终端输出中文乱码的问题。例如,AI 生成的内容变成 、Git 日志无法正常显示中文、npm 或 pnpm 的输出一片混乱、Python 程序中的中文字符出现异常,甚至 PowerShell 自身也无法正确显示中文。实际上,大多数情况下这与 Codex 本身无关,根本原因只有一个:Windows PowerShell 的默认编码并非 UTF-8。
下面提供一种通用的解决方案,无需修改 Codex 的提示词,也无需每次启动都手动执行命令,只需配置一次即可一劳永逸地解决乱码问题。

原理
PowerShell 在每次启动时都会自动加载一个名为 Profile(配置文件) 的脚本。我们只需将 UTF-8 编码设置写入该文件,此后所有 PowerShell 会话都将默认采用 UTF-8 编码。当 Codex 调用 PowerShell 时,该配置同样会自动生效。
第一步:创建 PowerShell Profile
首先,打开 PowerShell,执行下面这条命令:
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
如果 Profile 文件尚不存在,该命令将自动创建它。
第二步:查看 Profile 路径
接下来,继续输入以下命令查看路径:
$PROFILE
PowerShell 会输出你的 Profile 文件位置,例如:
C:\Users\CloudGFX\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
不同电脑的用户名可能不同,请记下这个路径。
第三步:编辑 Profile 文件
使用记事本或其他文本编辑器,打开刚才输出的 .ps1 文件,在其中添加以下配置内容:
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding $PSDefaultParameterValues['Get-Content:Encoding'] = 'UTF8' $PSDefaultParameterValues['Set-Content:Encoding'] = 'UTF8' $PSDefaultParameterValues['Add-Content:Encoding'] = 'UTF8'
保存文件即可。
第四步:重新打开 PowerShell
关闭所有 PowerShell 窗口,重新打开后,新的编码配置便会自动生效。此后,无论是 Codex 客户端、Windows Terminal、PowerShell 还是 VS Code 的内置终端,都将默认使用 UTF-8 编码。
配置后的效果
这套配置能解决大量与编码相关的问题:
- ✅ Codex 输出中文完全正常
- ✅ AI 生成内容不再出现乱码
- ✅ Python 输出中文显示正常
- ✅ Git 日志可正常显示中文
- ✅ npm 和 pnpm 输出中文正常
- ✅ Get-Content 默认使用 UTF-8
- ✅ Set-Content 默认使用 UTF-8
- ✅ Add-Content 默认使用 UTF-8
这套配置可以作为 Windows 开发环境的基础编码方案,一次配置,永久生效。
为什么推荐这种方法?
许多人在网上看到过一些临时解决方案,例如运行 chcp 65001 命令,或者执行 [Console]::OutputEncoding = [System.Text.Encoding]::UTF8。这些方法存在一个共同缺陷:关闭 PowerShell 后配置便会失效。每次打开终端都需要重新执行,既繁琐又低效。
相比之下,通过 Profile 进行配置属于永久性设置——只需配置一次,后续每次启动 PowerShell 都会自动加载。作为开发环境的长期方案,这种方法更加可靠。
总结
如果你在使用 Codex 客户端 时遇到终端乱码问题,无需修改提示词,也无需每次手动切换编码。只需配置 PowerShell 的 Profile,让系统默认采用 UTF-8 编码即可。具体步骤如下:
- 创建 Profile 文件
- 查看 Profile 路径
- 写入 UTF-8 配置
- 保存并重新打开 PowerShell
整个配置过程只需几分钟,之后所有 PowerShell 会话都将默认使用 UTF-8 编码,对 Codex、VS Code、Windows Terminal 等工具同样适用。
