最近这一两个月,工作中的开发全部依赖Codex,发现这玩意是真的好用,但是在过程中也遇到过不少问题; 最主要的问题还是频繁的出现生成的中文汉字乱码的问题,刚开始我以为是Codex的问题,所以每次改完代码后又会让Codex检查一遍,将所有的乱码改好,无非就是多耗费一些Token而已; 但是有一次在使用Claude Opus的时候也遇到了中文乱码问题,我发现它跟Codex有个特点,所有的操作都是调用PowerShell的原生命令来执行,这让我意识到乱码问题可能不是Codex本身,而是出在PowerShell上,大概了解了下,是因为Windows系统的PowerShell版本太低了,升级新版会解决该问题。
所以,便有了这篇文章,如果也有遇到同样问题的,可以按照如下操作来解决:
方案一:
直接访问以下链接进行下载:
https://github.com/PowerShell/PowerShell/releases
选择电脑对应的版本下载安装即可:

方案二:
通过管理员权限打开PowerShell:

执行以下命令:
winget install --id Microsoft.PowerShell
如果电脑没有winget,可访问以下链接下载安装:
https://aka.ms/getwinget
安装完winget后再执行上面的命令安装。
安装完成后打开PowerShell终端窗口,进入设置页面:

在默认配置文件中选择新安装的PowerShell并保存:

关闭所有终端界面重新打开后可以看到版本号已经更新:

运行以下命令,配置编码:
if (!(Test-Path -Path $PROFILE)) {
New-Item -Type File -Path $PROFILE -Force
}
notepad $PROFILE # 用记事本编辑
在文件中添加以下内容:
# 设置输入/输出编码为 UTF-8
$OutputEncoding = [Console]::InputEncoding = [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding
# 可选:修改默认参数(如 Get-Content 默认使用 UTF-8)
$PSDefaultParameterValues['*:Encoding'] = 'UTF8'
** 后续使用了有一段时间的Codex了,目前暂未遇到过有乱码问题 **