在 Windows 中使用 Codex CLI 时的乱码与崩溃问题全攻略 2025-09-18 程序之旅,记录 暂无评论 1 次阅读 # 💻 在 Windows 中使用 Codex CLI 时的乱码与崩溃问题全攻略 在 Windows 系统中使用 Codex CLI(尤其不是在 WSL 环境下)时,经常会遇到两个令人头疼的问题: 1. 控制台输出乱码 2. PowerShell 7 启动失败(CLR: Assert failure 报错) 本文将带你一步步排查并解决这些问题,确保你能流畅使用 Codex CLI。 --- ## 🅐 乱码问题:控制台编码不兼容 UTF-8 Codex CLI 默认使用 UTF-8 输出,而许多 Windows 控制台(尤其是旧系统或默认设置)仍使用 **GB2312**,会导致输出中文全是乱码。 ### 检查当前编码 打开 **Windows PowerShell**(或 PowerShell 7)输入: ```powershell [Console]::OutputEncoding ``` 如果输出类似: ``` BodyName : gb2312/us-ascii EncodingName : Chinese Simplified (GB2312) CodePage : 936 ``` 说明当前控制台是 **GB2312** 编码。 --- ### 方法一:将系统区域设置改为 UTF-8 1. 打开 **设置** → 搜索「语言设置」 2. 点击「管理语言设置」 → 「管理」 3. 点击「更改系统区域设置」 4. 勾选 **Beta: 使用 Unicode UTF-8 提供全球语言支持** 5. 确定并重启电脑 此后控制台会改为 UTF-8,Codex CLI 输出不再乱码。 --- ### 方法二:安装 PowerShell 7 + Windows Terminal 如果你不想改系统区域,可以改用支持 UTF-8 的现代终端。 1. 安装 PowerShell 7: ```powershell winget install --id Microsoft.PowerShell --source winget --scope machine ``` > ⚠️ 使用 `--scope machine` 保证对所有用户可用,安装到 `C:\Program Files\PowerShell\7\pwsh.exe` 2. 安装 Windows Terminal(可选但强烈推荐): ```powershell winget install --id Microsoft.WindowsTerminal ``` --- ## 🅑 PowerShell 7 启动崩溃:CLR Assert failure 部分用户在打开 PowerShell 7 时会看到报错: ``` CLR: Assert failure(PID xxxx): !AreShadowStacksEnabled() || UseSpecialUserModeApc() File: threads.cpp:7954 Image: C:\Program Files\PowerShell\7\pwsh.exe ``` 这是 **Windows 硬件强制堆栈保护(CET/Shadow Stack)** 与 .NET 运行时冲突导致的。 --- ### 解决方案一:命令行禁用 Shadow Stack 用 **Windows PowerShell 5.1**(不是 PowerShell 7)**以管理员身份**运行: ```powershell Set-ProcessMitigation -Name "C:\Program Files\PowerShell\7\pwsh.exe" -Disable UserShadowStack ``` 然后重新打开 PowerShell 7 即可。 > 要恢复原状: > > ```powershell > Remove-ProcessMitigation -Name "C:\Program Files\PowerShell\7\pwsh.exe" > ``` --- ### 解决方案二:图形界面设置 Exploit Protection 例外 1. 打开 **Windows 安全中心** → **应用和浏览器控制** 2. 点击 **利用防护设置(Exploit protection settings)** 3. 进入 **程序设置(Program settings)** → 添加程序 → 按路径选择 `C:\Program Files\PowerShell\7\pwsh.exe` 4. 在 **“用户模式硬件强制堆栈保护”** 里设置为 **关闭** 5. 保存并重启 PowerShell 7 --- ## 🅒 Codex CLI 使用体验优化 1. **安装 MSYS2** Codex CLI 的部分命令依赖类 Unix 工具链,在 Windows 下建议安装 [MSYS2](https://www.msys2.org/) 补全依赖。 2. **汉化 Codex CLI UI** 如果你觉得界面全英文不便,可下载第三方汉化版 `codex.exe`,覆盖: ``` C:\Users\<你的用户名>\AppData\Roaming\npm\node_modules\@openai\codex\bin\codex.exe ``` > 当前汉化版本:amd-64-0.30.0(作者正在构建 0.31.0) --- ## ✅ 总结 * 编码乱码 → 改系统区域为 UTF-8 或使用 PowerShell 7 + Windows Terminal * PowerShell 7 崩溃 → 针对 `pwsh.exe` 禁用 Shadow Stack * Codex CLI 使用异常 → 安装 MSYS2 + 汉化 UI 完成以上配置后,你就能在 Windows 环境中稳定、流畅地使用 Codex CLI 了 🎉 --- 打赏: 微信, 支付宝 标签: none 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。