解决中文 Windows 下 AI 编程工具中文乱码问题
在中文版 Windows 上使用 Claude Code、Codex、DeepSeek TUI 等 AI 编程工具时,你可能会遇到一个隐蔽但影响巨大的问题:AI 读取文件中的中文变成乱码,导致理解和生成代码的准确性大幅下降。本文将分析问题根因,并给出一步到位的解决方案。
背景:AI 编程工具的"中文盲区"
近年来,AI 编程工具(Claude Code、Codex CLI、DeepSeek TUI、Cursor、Windsurf 等)已成为开发者的日常标配。这些工具在执行任务时,无一例外地需要通过终端(Shell)来读取文件内容、执行命令、获取输出。
在 Windows 平台上,PowerShell 是这些 AI 工具默认使用的终端。然而,中文版 Windows 的 PowerShell 存在一个历史遗留的编码问题,会让 AI 在处理中文内容时"看瞎"。
问题现象
当 AI 通过 PowerShell 读取包含中文的文件时,原本正常的中文文本会变成类似这样的乱码:
è¿™æ˜¯ä¸€æ®µä¸æ–‡æµ‹è¯•或者:
\xd5\xe2\xca\xc7\xd2\xbb\xb6\xce\xd6\xd0\xce\xc4\xb2\xe2\xca\xd4AI 拿到这种乱码内容后,根本无法正确理解文件含义,直接后果包括:
- 代码生成偏差
:AI 无法理解中文注释、中文配置项,生成的代码与实际需求南辕北辙 - 文件分析失败
:读取日志、配置文件中的中文信息时,AI 提取的关键信息全是乱码 - 多轮对话污染
:乱码内容被 AI 纳入上下文,后续对话的质量持续下降 - Agent 任务中断
:桌面型通用 Agent 执行涉及中文文件的任务时,频繁出错甚至卡死

问题根因:GBK vs UTF-8 编码冲突
Windows 的编码历史包袱
中文版 Windows 系统的默认代码页(Code Page)是 936,对应的字符编码为 GBK。这是一个源自 DOS 时代的遗留设定,在当年(20 世纪 90 年代)解决了中文显示问题,但如今已成为国际化软件的绊脚石。
# 中文 Windows PowerShell 默认编码PS> [System.Text.Encoding]::DefaultCodePage: 936BodyName: gb2312EncodingName: 简体中文 (GB2312)

现代工具链默认 UTF-8
然而,几乎所有现代开发工具和框架都默认使用 UTF-8 编码:
当 AI 工具通过 PowerShell(GBK 环境)去读取一个 UTF-8 编码的文件时,编码不匹配,中文自然就变成了乱码。这是中文 Windows 用户在使用 AI 编程工具时最容易被忽视的系统级陷阱。
为什么这个问题之前不明显?
在 AI 编程工具普及之前,开发者主要在 IDE 内部操作文件,IDE 会自动处理编码转换,用户几乎无感。但 AI 编程工具是通过 Shell 与系统交互的,Shell 的编码设置直接影响 AI 拿到的数据质量——这就把 Windows 编码的底层问题暴露了出来。
解决方案:开启「Beta:使用 Unicode UTF-8」
网上有几种方案可以解决这个问题,比如修改 PowerShell 配置文件设置编码、设置环境变量等,但这些方案要么只对 PowerShell 生效、要么需要逐个工具配置,不够彻底。
我推荐最简单、最彻底的方案:在 Windows 系统层面开启 UTF-8 支持。 一次设置,全局生效,CMD / PowerShell / Git Bash 全部统一为 UTF-8。
操作步骤
Windows 10 / 11:开启「Beta:使用 Unicode UTF-8」
打开 设置 → 时间和语言 → 语言和区域


点击 管理语言设置(或在控制面板中找到 intl.cpl)

在弹出的「区域」窗口中,切换到 管理 选项卡,点击 更改系统区域设置,勾选 ✅ Beta: 使用 Unicode UTF-8 提供全球语言支持

- 重启电脑
验证结果
重启后,打开 PowerShell 验证编码是否已变更:
# 查看 PowerShell 输出编码PS> [Console]::OutputEncoding.CodePage65001# 查看系统默认编码PS> [System.Text.Encoding]::Default.CodePage65001
65001 就是 UTF-8 的代码页编号,说明设置已生效。
现在让 AI 再读取一下包含中文的文件:
PS> Get-Content .\README.md | Select-Object -First 3# 这是一个中文项目# 作者:张三# 日期:2025年
中文正常显示,AI 也能正确理解文件内容了!🎉

设置前后的效果对比
chcp | 活动代码页: 936 | 活动代码页: 65001 |
注意事项
兼容性风险:此选项标注为 “Beta” 是因为极少数老旧软件(特别是依赖 GBK 编码的旧版国产软件)可能会出现显示异常。如果你日常使用的软件都比较新,基本不会遇到问题。
修改后需重启:此设置属于系统级更改,必须重启电脑才能生效。
所有终端统一生效:开启后不仅 PowerShell,CMD、Git Bash 等所有终端均默认使用 UTF-8,无需逐个配置。
已有项目无需改动:你的项目文件本身不需要做任何修改,只是系统读取文件时的解码方式从 GBK 变为 UTF-8。
其他方案对比
| 系统级开启 UTF-8 | ||||
PYTHONIOENCODING | ||||
系统级方案虽然标注为 Beta,但已经过大量开发者验证,是目前最彻底、最省心的解决方案。
总结
在中文 Windows 环境下,GBK 编码是 AI 编程工具的隐形杀手——它不会报错,只会悄悄地把中文变成乱码,让 AI 的理解和输出质量无声下降。如果你正在中文 Windows 上使用 Claude Code、Codex、DeepSeek TUI 或任何桌面型 Agent,强烈建议花两分钟开启系统级 UTF-8 支持。
一劳永逸,让 AI 真正看懂你的中文。
夜雨聆风