在使用 codex 时,当 codex 运行 powershell 命令读取文件内容遇到中文时会出现乱码问题,读取的内容会是一堆问号之类的乱码,虽然 codex 随后会强制使用 utf8 来读取,但这无疑拖慢了codex 的处理耗时。作为轻微强迫症的我也不允许这种事发生。

博主也看了很多解决这问题的帖子,解决方法都是安装PowerShell 7 或 修改profile,但这样并没有解决问题!改了还是没有任何效果。下面讲诉这两种无效的尝试方法以及解决办法。

尝试一:安装PowerShell 7

PowerShell 7 默认采用 utf8 编码,博主安装了PowerShell 7 并将其设为默认终端,但 codex 压根就不使用 PowerShell 7,还是使用的系统自带的PowerShell 5.1。(没招)

尝试二:修改profile

首先执行下面的命令:

 cocde $PROFILE

然后假如以下设置:

# 强制UTF-8编码
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'

该设置对本机起效果,但codex 根本不吃这套。可能原因是 codex 运行在沙箱环境,根本不会执行 profile,改了等于白改。

🎉 真正的解决方案

Windows 设置 → 时间和语言 → 语言和区域→ windous语言设置→Beta版:使用Unicode UTF-8 提供全球语言支持

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐