问题背景

在 VS Code 编程环境中,使用 Codex(如 GitHub Copilot、OpenAI Codex 等 AI 编码助手插件)自动修改或生成文件时,经常会遇到 中文内容出现乱码 的情况,影响代码或文档的阅读和编辑体验。那么,这种乱码到底是怎么产生的?又该如何系统性排查和彻底解决?

问题分析

并非VS Code编辑器本身问题。其实 Codex 修改文件时,是通过终端执行命令把修改写入文件再由 VS Code 打开,终端编码与 VSCode 文件编码不一致时极易造成乱码。

详细解决步骤

1. VS Code统一文件编码

在设置(settings.json)中添加:

{
  "files.encoding": "utf8",
  "files.autoGuessEncoding": true
}

2. 终端编码统一为UTF-8(以PowerShell为例)

检查并升级为PowerShell 7

终端输入:

$PSVersionTable.PSVersion

推荐使用 PowerShell 7(pwsh),旧版 5.1 容易有 BOM 问题。

编辑 profile 文件,强制 utf8

$utf8Block = @'
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'
'@
Add-Content -Path $PROFILE -Value $utf8Block -Encoding UTF8
. $PROFILE

3. CMD和Git Bash配置

  • CMD临时切换:chcp 65001
  • Git Bash配置:export LANG="zh_CN.UTF-8"export LC_ALL="zh_CN.UTF-8"

4. VS Code 默认终端建议

Ctrl+Shift+P,选择 terminal 默认类型(推荐PowerShell 7或Git Bash),确保统一UTF-8编码,避免乱码。


常见疑问

  • 为什么推荐PowerShell 7? UTF-8支持更好,适合 AI/自动化等场景。
  • 为何命令执行要改为pwsh.exe? VS Code与Codex等插件及大模型调用外部终端建议统一选择 pwsh.exe(即 PowerShell 7),而不是老的 powershell.exe

AGENTS.md 文件提示词补充

建议在你的 AGENTS.md 文件中增加如下提示(markdown格式),用于明确告知模型使用 PowerShell 7(pwsh.exe)执行命令:

# Agent 命令执行环境规范

- 执行命令请始终优先选择 **PowerShell 7(pwsh.exe)**,而不是旧版的 **powershell.exe**。
- 这样能保证命令执行全部采用 UTF-8 编码,避免中文乱码问题及 BOM 错误。
- 请勿使用 powershell.exe,确保兼容新特性和中文无乱码。

总结

统一 VS Code 文件编码与终端编码,优先使用 PowerShell 7 并在 AGENTS.md 文件中添加提示词,可有效解决 Codex 插件自动修改中文文件乱码的常见问题。


1

标签: none

添加新评论