type
Post
status
Published
date
Apr 12, 2026
slug
codex_utf8
summary
如何把 Windows 下终端、Codex、Python 脚本和常见命令行工具统一切到 UTF-8 环境,避免中文输出、中文注释和中文文件处理时出现乱码。
tags
AI
开发
工具
category
知识分享
icon
💻
password
这篇文章解决的问题是:如何把 Windows 下终端、Codex、Python 脚本和常见命令行工具统一切到 UTF-8 环境,避免中文输出、中文注释和中文文件处理时出现乱码。
先说结论:不要继续在 GBK 和 UTF-8 混用的状态里逐个工具打补丁,而是直接把终端链路整体切到 UTF-8。

适合谁

  • 你在 Windows 下用 Codex、Claude Code、Python 或其他 CLI 工具时经常遇到中文乱码。
  • 你还在使用旧版 PowerShell 5.1,或者终端和编辑器编码设置不一致。
  • 你想要一套能长期稳定工作的方案,而不是每次乱码再临时修修补补。

先统一一个判断

很多人第一次看到乱码,会先怀疑:
  • Codex 输出坏了
  • Python 文件编码坏了
  • VS Code 某个保存选项坏了
这些都可能是表象,但在 Windows 上更常见的根因是:终端还在旧代码页,编辑器、脚本和 Agent 又在按 UTF-8 工作。
所以这篇文章的主方案不是给某个工具单独修补,而是把下面这条链路统一起来:
  1. Windows Terminal
  1. PowerShell 7
  1. $PROFILE 里的 UTF-8 配置
  1. VS Code 默认终端

1. 先切到 PowerShell 7

建议直接放弃系统自带的 PowerShell 5.1,切换到现代终端组合:
  • 终端核心:PowerShell 7(pwsh)
  • 终端外壳:Windows Terminal
安装命令:
安装完之后,验证版本:
只要主版本是 7,说明你已经切到正确的 PowerShell 了。

2. 把 UTF-8 写进 $PROFILE

先打开配置文件:
然后加入下面这段补丁:

3. 解除脚本运行限制

如果系统弹出确认提示,输入 A 并回车即可。
这一步不是为了关闭安全,而是为了允许你自己的本地 PowerShell 配置正常生效。范围限定在 CurrentUser。

4. 验证配置是否成功

重启终端后,运行:
看到 WebName = utf-8,CodePage = 65001 即为成功。
验证编码输出
验证编码输出

5. 把 Windows Terminal 和 VS Code 一起切过来

Windows Terminal:打开设置,将默认配置文件修改为 PowerShell 7。
Windows Terminal 默认配置文件设置
Windows Terminal 默认配置文件设置
如果列表里还没有 PowerShell 7,可先手动运行一次 pwsh,再回来查看设置页。
PowerShell 7 未出现在列表中
PowerShell 7 未出现在列表中
VS Code:按 Ctrl+Shift+P,搜索 Terminal: Select Default Profile,选择 PowerShell 7。

6. 最常见的坑

  • 只改编辑器,不改终端:照样会乱码。
  • 只改临时设置,没写进 $PROFILE:重开终端后恢复原样。
  • PowerShell 5.1 和 7 混用:行为不一致。
  • 把问题归给 Codex 本身:大多数时候是终端链路没统一。
  • 只执行 chcp 65001:临时有效,重开失效。

总结

通过 PowerShell 7 + Windows Terminal + $PROFILE UTF-8 补丁 这条主线,把 Windows 开发环境从历史遗留的 GBK 体系切到更稳定的 UTF-8 体系。
一旦这条链路统一下来,Codex 生成的中文注释、Python 脚本输出、命令行工具返回结果,以及日常编辑保存的中文文件,都会明显稳定很多。
 
流媒体合租Claude Code 起手式:用 CLAUDE.md 建立项目方案记忆(2)
Loading...