尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Codex 执行 PowerShell 中文乱码避雷:从 PowerShell 7 安装到 profile 的 UTF-8 配置与 TaoToken 接入

发布时间:2026/9/29 22:37:03

资讯中心
01
ARTICLE

Codex 执行 PowerShell 中文乱码避雷:从 PowerShell 7 安装到 profile 的 UTF-8 配置与 TaoToken 接入

Codex 执行 PowerShell 中文乱码避雷:从 PowerShell 7 安装到 profile 的 UTF-8 配置与 TaoToken 接入
1. Codex 调 PowerShell 中文乱码到底卡在哪Codex 在 Windows 上执行 PowerShell 命令时只要输出里带中文终端里经常直接变成一串问号或者方块。这个现象不是 Codex 本身坏了而是编码链路里有一环没对齐Codex 启动 PowerShell 的方式、PowerShell 自己的输出编码、控制台代码页、以及文件读写默认编码这几层任意一层不是 UTF-8中文就会在传递过程中被替换成?。我实测下来最容易被误导的地方是很多人以为装了 PowerShell 7 就万事大吉结果 Codex 压根没调用 pwsh.exe还是走系统的 Windows PowerShell 5.1也有人改了$PROFILE本机终端里中文正常了但 Codex 跑命令时依然乱码因为 Codex 执行命令的方式不一定加载你的 profile。所以这篇不绕弯子直接把「安装避雷 profile 配置 环境变量 代码页 TaoToken 接入」串成一条可复制的路径让你一次性把乱码按死。适合谁看在 Windows 上用 Codex 做编码、跑脚本、读日志输出里经常出现中文乱码的开发者以及想把模型调用统一走一个 Key/API 通道、顺便把终端环境理顺的人。下面每一步都给命令和预期结果你可以边看边敲。2. 先把 PowerShell 7 装对别让 Codex 继续用 5.12.1 安装 PowerShell 7 的正确姿势PowerShell 7 默认就是 UTF-8这是它比 5.1 省心的地方。但「装了」不等于「Codex 会用」。推荐用 winget 装版本可控winget install --id Microsoft.PowerShell --source winget装完后确认可执行文件位置通常是Get-Command pwsh | Select-Object Source预期输出类似C:\Program Files\PowerShell\7\pwsh.exe。如果这条命令报找不到pwsh说明 PATH 没刷新重开一个终端再试。2.2 让 Codex 真正调用 pwsh 而不是 powershell.exe这是第一个大坑。系统里powershell.exe指向 5.1pwsh.exe才是 7。Codex 默认可能调前者。你要做的是在 Codex 的配置里显式指定 shell 路径。以config.toml为例[shell] program C:\\Program Files\\PowerShell\\7\\pwsh.exe args [-NoLogo, -NoProfile, -Command]注意-NoProfile这个参数它会让 PowerShell 跳过 profile 加载。如果你后面要靠 profile 设编码这里就别加-NoProfile如果你打算用环境变量和代码页统一控制那加-NoProfile反而更干净、启动更快。两种思路二选一别混着来否则你会以为 profile 没生效其实是-NoProfile把它屏蔽了。提示先用pwsh -Command $PSVersionTable.PSVersion确认版本是 7.x再改 Codex 配置顺序反了会白折腾。3. profile 与环境变量把 UTF-8 钉死在每一层3.1 profile 配置片段可复制打开 profile 文件code $PROFILE如果提示文件不存在先创建目录再新建。把下面这段贴进去# 强制控制台代码页为 UTF-8 chcp 65001 | Out-Null # 控制台输入输出编码 [Console]::InputEncoding [System.Text.UTF8Encoding]::new() [Console]::OutputEncoding [System.Text.UTF8Encoding]::new() # 管道输出编码 $OutputEncoding [System.Text.UTF8Encoding]::new() # 文件读写默认编码 $PSDefaultParameterValues[Out-File:Encoding] utf8 $PSDefaultParameterValues[Set-Content:Encoding] utf8 $PSDefaultParameterValues[Add-Content:Encoding] utf8保存后重开终端验证[Console]::OutputEncoding.WebName预期输出utf-8。如果还是gb2312或别的说明 profile 没被加载回到 2.2 检查是不是加了-NoProfile。3.2 环境变量兜底profile 只在交互式会话里稳Codex 这种非交互调用不一定吃。所以再加一层系统级环境变量让子进程继承 UTF-8[Environment]::SetEnvironmentVariable(PYTHONUTF8, 1, User) [Environment]::SetEnvironmentVariable(PYTHONIOENCODING, utf-8, User)设完要重开终端才生效。PYTHONUTF81对 Codex 里跑 Python 脚本读中文文件特别有用能避免 Python 自己按 GBK 解码。3.3 代码页调整的边界chcp 65001只影响当前控制台会话新开的窗口会回到默认。所以它必须配合 profile 或启动参数一起用单独敲一次没意义。如果你在 CI 或脚本里跑直接在命令前拼chcp 65001 nul 也行。4. TaoToken 接入统一 Key 与 API 通道环境理顺后把模型调用也统一掉省得每个工具配一套 Key。TaoToken 提供统一的 API 通道兼容常见调用格式。先到控制台拿 Key控制台入口https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteAPI Keys 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite拿到 Key 后在 Codex 的config.toml里配置模型通道骨架[model] provider openai-compatible base_url https://taotoken.net/api api_key sk-你的Key model claude-sonnet-4-5如果你用的是settings.json风格的工具对应骨架{ model: { provider: openai-compatible, baseUrl: https://taotoken.net/api, apiKey: sk-你的Key, model: claude-sonnet-4-5 } }API 基础地址就是https://taotoken.net/api不要加多余路径。想先验证模型通不通可以直接用模型对话页试一句中文看返回是否正常模型对话https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite如果你长期用 Codex 做编码或跑 Agent建议走 Coding Plan额度更划算Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite接入文档在这里参数细节以文档为准接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite5. 验证请求与预期输出配置完别急着跑大任务先用一条带中文的命令验证编码链路。在 Codex 里执行pwsh -Command Write-Output 中文测试编码正常预期输出就是原样中文没有问号。如果这里正常再测文件读取pwsh -Command Get-Content .\test.txt -Encoding utf8准备一个test.txt里面写几行中文。预期能完整读出。接着验证模型通道用 curl 打一发curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d {model:claude-sonnet-4-5,messages:[{role:user,content:用中文回一句话}]}预期返回 JSON 里content是正常中文。如果这一步返回乱码问题在模型通道而非 PowerShell分开定位能省很多时间。6. 本篇常见错排查改了 profile 没效果九成是 Codex 启动带了-NoProfile或者根本没调 pwsh。用Get-Command pwsh和 Codex 配置里的program路径对一遍。装了 PowerShell 7 但版本还是 5.1Codex 配置里写的是powershell.exe。改成pwsh.exe的完整路径。中文变问号但英文正常控制台代码页不是 65001或者[Console]::OutputEncoding没设。回到 3.1 逐条验证。Python 脚本读中文报 UnicodeDecodeErrorPYTHONUTF81没生效重开终端或检查是否设到了 User 级。curl 返回乱码终端本身编码问题不是 API 问题。先chcp 65001再试或把返回重定向到文件用编辑器看。profile 路径找不到$PROFILE在 5.1 和 7 里指向不同文件确认你编辑的是 pwsh 对应的那个。把这几条对照着排基本能覆盖 95% 的乱码场景。剩下的多半是某个工具自己硬编码了 GBK那就得单独看它的文档了。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。