Codex中文乱码分三类:终端显示乱码(如“æˆ‘çˆ±ä¸æ–‡”)、文件写入乱码(VS Code中乱码)、模型输出转义(如“\u4e2d\u6587”),需先识别类型再针对性解决。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

先确认乱码属于哪一类
Codex中文乱码不是单一问题,而是三类独立故障的混合体:终端显示乱码、文件写入乱码、模型输出转义,必须先对症再动手。打开终端运行 codex "测试中文",观察输出形态——如果看到“æˆ‘çˆ±ä¸æ–‡”这类拉丁字母混符号,说明是UTF-8字节被GBK/Latin-1错误解码;如果全是“???”,说明原始字节已在某环节被替换丢弃;如果出现“\u4e2d\u6587”,那根本不是编码问题,是模型输出策略没约束。
这一步不能跳过。误判类型会导致后续所有操作白费:把转义当乱码去改终端编码,或把终端问题当成文件损坏去重存,反而污染原本正常的UTF-8内容。
检查终端输出编码是否对齐
在PowerShell中执行:[Console]::OutputEncoding。若返回不是【System.Text.Encoding】对象且Name字段不为utf-8,说明终端解码层已失守。旧版PowerShell 5.1默认用GBK(代码页936),而Codex输出的是UTF-8字节流,两者一碰就出“锟斤拷”。
临时修复只需运行chcp 65001切换当前会话为UTF-8,但关掉窗口即失效。真正有效的做法是升级到PowerShell 7并配置Profile:用New-Item -Path $PROFILE -ItemType File -Force创建配置文件,粘贴以下内容后保存:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8<br>$OutputEncoding = [System.Text.Encoding]::UTF8。重启pwsh后再次执行
[Console]::OutputEncoding,确认Name字段显示utf-8。
验证auth.json是否引入编码干扰
用记事本或VS Code以纯文本模式打开auth.json,检查是否有中文注释、中文Key名或非ASCII字符。Codex解析该文件时若遇到UTF-8 BOM或GBK残留字节,可能直接中断JSON解析,导致后续请求发往错误endpoint,响应头charset声明混乱,最终引发连锁乱码。
方法一:删掉所有中文注释,只保留标准JSON结构,Key全用英文,Base URL用TaoToken统一端点https://taotoken.net/api;
方法二:用VS Code右下角编码切换器强制另存为【UTF-8 无BOM】,然后用Get-Content auth.json -Encoding UTF8 | ConvertFrom-Json验证能否正常解析。
通过 Codex CLI 生成图片,支持尺寸控制和批量模式。依赖:codex (npm)。代理默认启用。用 generate.sh 生成单张,batch_generate.sh 批量生成游戏 UI 素材,gen_size.sh 指定尺寸。所有输出保存至 ~/.codex/generated_images/。
注意:不要用Windows记事本另存为UTF-8,它默认加BOM,BOM会被Codex当作非法JSON字符报错。
排查文件写入环节的编码错位
第一步:确认Codex写入命令是否显式指定编码。比如PowerShell中用Set-Content写文件,必须带-Encoding UTF8参数,否则默认用系统代码页(GBK);
第二步:检查目标文件原始编码。用VS Code打开该文件,右下角查看当前编码标识——如果是GBK或UTF-16,Codex直接覆盖写入UTF-8内容就会破坏结构;
第三步:验证写入结果。用Get-Content -Path 文件名 -Encoding UTF8读取,若显示正常,说明文件本身没问题,是读取工具(如旧版Notepad)用了错误编码打开。
这一步的关键在于区分“文件坏了”和“读法错了”。很多开发者看到VS Code里乱码,第一反应是重写文件,结果把原本正常的UTF-8文件用GBK方式保存了一次,造成不可逆损坏。
统一IDE与项目编码规范
VS Code设置里搜索“files.encoding”,设为【utf8】;关闭“files.autoGuessEncoding”——自动猜测常把UTF-8无BOM误判为GBK;在项目根目录放.editorconfig文件,写入:
root = true<br>[*]<br>charset = utf-8<br>end_of_line = lf<br>insert_final_newline = true。
PowerShell 7 Profile中还需补上这行:$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8',否则用>重定向写文件仍走默认编码。做完这步,Codex生成的中文注释、文档、SQL脚本才能稳定落盘不漂移。

















