最近在使用codex桌面端开发代码时,频繁出现代码中文乱码导致项目编译失败,依靠codex自检和修复需要花费大量时间和额度,且问题出现较为频繁。由于网上查询资料较为分散,故汇总相关解决信息,以帮助解决windows11环境下的codex编程乱码问题。
在 Windows 11 环境中使用 Codex(或 Copilot / AI 编码工具)生成代码时,常见问题:
中文乱码(æˆ‘çˆ±ä¸æ–‡ / ??? / \u4e2d\u6587)
导致编译失败 / 文件损坏 / 频繁手动修复
Codex 中文乱码 不是 AI 的问题
本质是:编码链路不一致
典型错误链路
Codex(UTF-8)
↓
Windows 终端(GBK / UTF-16)
↓
文件写入(错误编码)
↓
IDE 按 UTF-8 读取
↓
乱码
Windows 默认终端仍使用历史代码页(GBK/936),而现代工具默认 UTF-8
导致编码“误读”
Codex 并不是直接修改文件,而是:
生成命令 → 终端执行 → 写入文件
如果终端编码错误 → 文件直接损坏
即使 VSCode / IDEA 设置为 UTF-8:
只要终端写入是 GBK → 仍然乱码
| 写法 | 实际编码 |
|---|---|
| > | UTF-16 |
| Out-File | UTF-16 |
| Set-Content | 不稳定 |
全链路统一 UTF-8(无 BOM)
|
1 |
winget install --id Microsoft.Powershell |
启动:
|
1 |
pwsh |
验证:
|
1 |
$PSVersionTable |
输出:
|
1 |
PSEdition : Core |
PowerShell 7 默认支持 UTF-8
|
1 |
notepad $PROFILE |
写入:
|
1 2 3 4 5 6 |
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $OutputEncoding = [System.Text.Encoding]::UTF8
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8' $PSDefaultParameterValues['Set-Content:Encoding'] = 'utf8' $PSDefaultParameterValues['Add-Content:Encoding'] = 'utf8' |
确保:默认终端 = PowerShell 7(pwsh)
不要使用:
|
1 2 |
powershell.exe(旧版) cmd.exe |
VSCode
|
1 2 3 4 |
{ "files.encoding": "utf8", "files.autoGuessEncoding": false } |
IntelliJ
|
1 2 |
Global Encoding → UTF-8 Project Encoding → UTF-8 |
.editorconfig
|
1 2 3 4 5 |
root = true
[*] charset = utf-8 end_of_line = lf |
.gitattributes
|
1 2 3 4 5 |
* text=auto eol=lf
*.java text working-tree-encoding=UTF-8 *.ts text working-tree-encoding=UTF-8 *.js text working-tree-encoding=UTF-8 |
生成代码必须遵守:
可显著降低乱码概率
不要使用:
|
1 2 |
echo "中文" > file.txt Out-File file.txt |
使用:
|
1 |
Set-Content file.txt -Encoding utf8 |
如果 Codex 调用 bash 出现乱码:
|
1 |
$env:WSL_UTF8="1" |
或配置:
|
1 2 |
[shell_environment_policy.set] WSL_UTF8 = "1" |
|
1 |
[Console]::OutputEncoding |
应为:
|
1 |
UTF-8 |
生成中文文件测试:
|
1 |
Set-Content test.txt "你好" -Encoding utf8 |
打开应正常显示
查看 PowerShell 类型:
|
1 |
$PSVersionTable |
|
1 2 3 4 5 |
Windows Terminal + PowerShell 7 + UTF-8(无 BOM) + .editorconfig + .gitattributes + Codex Prompt 约束 |
Codex 乱码本质不是 AI 问题,而是:
Windows 终端(GBK) vs AI(UTF-8)编码冲突
解决方案:统一为 UTF-8(无 BOM)
完成以上配置后:
推荐程度(优先级)
必须做:
推荐做:
进阶:
这套方案可以解决 90%+ Codex 中文乱码问题,适用于: