codex读取中文文件名失败源于系统路径编码与ai环境不匹配,需先验证终端是否正常显示中文名;windows推荐强制powershell utf-8编码,mac可用convmv标准化unicode,终极方案是统一英文文件名。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex读取中文文件名失败,是因为系统路径编码与AI运行环境不匹配,导致文件名在解析阶段就被截断或转义为乱码,不是文件本身损坏,也不是权限问题。
确认是否真为中文文件名导致
在终端中执行:ls -la(Mac/Linux)或 dir(Windows CMD)→ 观察输出中中文文件名是否显示正常;若终端本身已显示为?????.txt或.md,说明问题出在系统终端编码层,而非Codex本身。
这一步必须先做。很多用户跳过验证直接改Codex配置,结果发现根本没改对地方。
Windows下修复终端路径编码
方法一:强制PowerShell使用UTF-8(推荐)
打开PowerShell → 执行:[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 → 再执行:$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8' → 重启Codex Desktop。
方法二:修改系统区域设置(影响全局)
进入「控制面板 → 时钟和区域 → 区域 → 管理 → 更改系统区域设置」→ 勾选「Beta版:使用Unicode UTF-8提供全球语言支持」→ 重启电脑。【此操作会改变所有旧版命令行工具的默认行为,部分老旧批处理可能异常】
方法三:绕过问题(最稳)
将含中文文件名的项目移至纯英文路径,例如:D:\projects\myapp\,确保从根目录起每一级文件夹名都不含中文、空格、符号。
Mac下修正文件系统编码识别
Mac默认使用UTF-8,但HFS+或APFS卷若被非macOS系统写入过中文名,可能丢失NFC规范化标记,导致Codex调用fs.readdir时返回不可解析字符串。
第一步:打开终端,cd进目标目录
第二步:执行:convmv -f utf-8 -t utf-8 --notest -r .
第三步:输入y确认批量重命名(该命令会标准化所有文件名的Unicode形式,不改变内容)
第四步:重启Codex并重新加载项目。
注意:此命令需提前安装:brew install convmv;若提示“command not found”,先执行brew update && brew install convmv。
终极规避方案:统一用英文文件名
在项目根目录下新建.gitattributes文件,写入:
* text=auto eol=lf**/README.md text eol=lf**/*.py text eol=lf
然后对所有中文文件名执行重命名:git mv “用户手册.md” user_manual.md → 提交变更。【Git会自动处理重命名的编码映射,比手动改名更安全】











