win11下codex中文乱码需启用系统级utf-8支持并切换至powershell 7:一、勾选“beta版:使用unicode utf-8提供全球语言支持”并重启;二、安装powershell 7并设为windows terminal默认;三、配置$profile强制utf-8输出与文件编码;四、同步vs code的files.encoding为utf8。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Win11下Codex命令行输出中文变成æˆ‘çˆ±ä¸æ–‡或???,不是AI写错了,而是终端把UTF-8字节流当GBK解码了——整个链路里只要有一环用错编码,中文就彻底报废。
启用系统级UTF-8支持(必须重启)
这一步改的是Windows底层对非Unicode程序的默认处理逻辑,影响cmd、PowerShell 5.1、记事本等所有传统工具。不启用它,后续配置效果会打折扣。
按下 Win + I 打开设置 → 时间和语言 → 语言和区域 → 点击右侧“相关设置”里的“管理语言设置” → 在弹出窗口切换到“管理”选项卡 → 点击“更改系统区域设置” → 勾选【Beta版:使用Unicode UTF-8提供全球语言支持】 → 点“确定” → 重启电脑。
重启后,cmd和旧版PowerShell会自动使用UTF-8代码页65001,但别依赖它跑Codex——这只是基础铺垫。
安装PowerShell 7并设为默认终端
PowerShell 5.1(powershell.exe)是系统自带的遗产,无法可靠支持UTF-8;必须换用现代的pwsh(PowerShell 7)。它跨平台、可配置、默认行为与Linux一致。
在任意终端中运行:winget install --id Microsoft.PowerShell。
如果提示winget未识别,去Microsoft Store搜“Windows Terminal”装好后再试;装完后按Win键搜“Terminal”打开。
在Windows Terminal里点击右上角下拉箭头∨ → 设置 → 左侧选“启动” → 将“默认配置文件”改为【PowerShell 7 (pwsh)】 → 点“保存”。
⚠️ 关键提醒:绝对不要选“Windows PowerShell”或“Command Prompt”,它们仍是GBK陷阱。
配置pwsh强制UTF-8输出链路
PowerShell 7本身不自动启用UTF-8,必须手动注入编码声明,否则Set-Content、Out-File等命令仍可能写入UTF-16或系统默认编码。
第一步:在pwsh中运行 New-Item -Path $PROFILE -ItemType File -Force 创建配置文件(若不存在)。
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
第二步:运行 notepad $PROFILE 用记事本打开该文件。
第三步:粘贴以下全部内容,保存并关闭:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8<br>$OutputEncoding = [System.Text.Encoding]::UTF8<br>$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'<br>$PSDefaultParameterValues['Set-Content:Encoding'] = 'utf8'<br>$PSDefaultParameterValues['Add-Content:Encoding'] = 'utf8'
第四步:关闭当前Terminal,重新打开一个新pwsh窗口,输入 [Console]::OutputEncoding —— 返回结果必须是【UTF-8】,不是System.Text.UTF8Encoding对象,也不是空值。
同步VS Code文件编码设置
Codex生成的代码最终被VS Code读取,如果编辑器用UTF-8打开,而文件实际是GBK写入的,乱码照旧。必须让VS Code保存和读取都走UTF-8。
按 Ctrl + , 打开设置 → 左上角点“打开设置(JSON)” → 在花括号内添加两行:
"files.encoding": "utf8",<br>"files.autoGuessEncoding": true
保存后,新创建的文件默认UTF-8,老文件打开时也能自动识别BOM或常见编码。
验证乱码是否消失
方法一:在pwsh中直接执行 echo "你好世界" > test.txt,然后用VS Code打开test.txt —— 文字清晰无?无。
方法二:运行Codex指令生成含中文注释的代码文件,检查文件内容和编译结果。
方法三:在pwsh中输入 $PSVersionTable.PSEdition,确认返回【Core】而非Desktop —— 这是PowerShell 7运行的确切证据。










