PowerShell 7解决 Windows 下 Codex 客户端中文乱码问题

一、安装 PowerShell 7

以管理员身份打开终端,执行命令安装 PowerShell 7:

winget install --id Microsoft.PowerShell

二、配置 PowerShell 7 全局 UTF-8 编码

1. 创建并打开配置文件

# 生成配置文件(文件不存在则自动新建)
New-Item -ItemType File -Path $PROFILE -Force

# 调用记事本打开配置文件
notepad $PROFILE

2. 写入 UTF-8 编码配置

将以下内容完整复制粘贴到打开的配置文件中,保存并关闭记事本:

# 初始化无 BOM UTF-8 编码对象
$utf8 = New-Object System.Text.UTF8Encoding $false

# 控制台输入、输出强制使用 UTF-8
[Console]::InputEncoding = $utf8
[Console]::OutputEncoding = $utf8

# 管道及外部程序输出编码强制 UTF-8
$OutputEncoding = $utf8

# 适配 CLI 程序字符集
$env:LANG = "zh_CN.UTF-8"
$env:LC_ALL = "zh_CN.UTF-8"

# 重定向、文件写入默认使用 UTF-8 编码
$PSDefaultParameterValues['*:Encoding'] = 'utf8'

3. 重启 PowerShell 7 使配置生效

pwsh

三、验证编码与环境是否生效

重启后依次执行以下命令,校验配置结果:

# 校验控制台输出编码(需显示 UTF-8,CodePage=65001)
[Console]::OutputEncoding

# 校验管道编码(需显示 UTF-8)
$OutputEncoding

# 校验运行环境(需输出 Core,代表 PowerShell 7 内核)
$PSVersionTable.PSEdition

四、Codex 客户端指定调用 PowerShell 7

找到 Codex 客户端配置文件,在配置末尾追加以下内容,指定终端为 PowerShell 7:

[shell]
executable = "pwsh"
args = ["-NoProfile", "-Command"]
version = "7.6.2"

五、最终测试

重启 Codex 客户端,在内置终端执行中文输出测试,无乱码即配置完成:

Write-Host "中文测试:Codex 客户端编码正常"

或者直接对话框要求执行验证应该输出“Core”

$PSVersionTable.PSEdition

在这里插入图片描述

更多推荐