根本原因是终端编码、cli版本、模型配置与提示词结构未对齐:powershell 5默认gbk截断中文,v2.3.9及以下cli丢弃###分隔块,旧模型跳过结构标记,核心指令须前置且用utf-8声明。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex中文输入不正常,表现为指令发送后无响应、返回英文、输出乱码或关键指令被忽略,根本原因不是模型不支持中文,而是终端编码、CLI版本、模型配置与提示词结构四者未对齐——PowerShell 5默认GBK截断中文输入,v2.3.9及以下CLI静默丢弃###分隔块,旧模型跳过结构标记,核心动作埋在末尾则直接失效。
确认终端是否真正接收中文输入
打开 PowerShell 7(不是 Windows 自带的 PowerShell 5),运行:pwsh → 输入 $Host.UI.RawUI.ReadKey("IncludeKeyDown") → 按下任意中文字符(如“测”),观察返回值中 Character 字段是否为该汉字本身。若显示为空、问号或乱码字节(如�),说明终端根本没收到原始中文,后续所有指令都无效。
【强行在 PowerShell 5 中写中文指令,Codex 实际接收到的是乱码字节,模型根本无法解析】
若仍用 PowerShell 5,请立即停用——它对中文输入的支持是硬性缺陷,升级 PowerShell 7 是不可绕过的前提。
验证并切换至支持中文结构化提示的模型
执行 codex model list,检查输出中是否存在 codex-2026.05。该模型是目前唯一完整支持中文分隔块(如 ### 指令、### 上下文)的版本;其他模型即使能输出中文,也会跳过结构标记,把整段当自由文本处理。
方法一:临时强制切换并测试
运行:codex --model codex-2026.05 "请用中文总结以下内容:今天天气很好,适合写代码。"。若返回结果为纯中文且无额外解释,说明模型层通畅;若返回英文或格式错乱,需检查 ~/.codex/config.toml 中 model = "codex-2026.05" 是否拼写准确、有无多余空格。
方法二:检查 CLI 版本兼容性
运行 codex --version。低于 v2.4.0 的 CLI 会静默丢弃所有 ### 分隔块——无论你写多少中文指令都没用,必须升级。
重构中文提示词:让关键指令不可跳过
第一步:把最核心动作压缩进前两行,禁用任何修饰性语句。
错误示范:“我想请你帮我修改一下 src/utils.ts 文件,这个文件里有一个叫 formatDate 的函数,它目前只支持英文输出……”
正确写法:
请严格修改 src/utils.ts 中的 formatDate 函数,使其返回中文日期字符串,仅输出修改后的完整函数代码,不要解释、不要注释、不要省略。
第二步:删除所有全角标点、空行和 Markdown 注释。
Codex-2026.05 对 token 计数极为敏感,一个全角冒号“:”比半角“:”多占用 2~3 个 token,可能导致关键指令被截断丢弃。
第三步:在提示词开头显式声明 UTF-8 编码。
第一行必须是:# -*- coding: utf-8 -*- 或 // @encoding: utf-8(根据目标语言选择),否则模型可能以默认 ASCII 解析后续中文。
第四步:清空上下文再提交。
执行 codex context clear,避免历史对话残留干扰新指令解析——旧上下文若含乱码字节,会污染当前输入流。











