codex 改文件中文乱码的解决方法
脚本之家
前言
最近发现闲鱼可以不到几块钱,可以拼车GPT Team,就能使用codex各个模型一个月(本质上这些人是搞的0刀或1刀试用team)

体验之后,不得不说,codex确实比kimi 2.5等国产模型一次通过率高很多,用的很爽,额度很多,真的量大管饱(如果用codex 桌面端还能限时享受2倍额度)

但是使用过程中,我发现有一个问题——codex经常把中文改成乱码,网上搜索了一翻,发现要安装powershell 7才能解决
为什么要安装powershell 7

Codex 基于 Node.js,默认 UTF-8,而Windows 自带的PowerShell 5.1 /cmd 默认 GBK(代码页 936),codex读写文件之后就会导致编码冲突,从而导致中文产生乱码
而PowerShell 7 默认 UTF-8,就可以解决乱码情况
如何安装powershell 7
安装powershell 7:https://github.com/powershell/powershell/releases(也可以前往微软商店下载)
之后重启电脑,不重启可能有些终端依然使用的是powershell5
打开cmd,运行where pwsh,输出C:\Program Files\PowerShell\7\pwsh.exe,确保pwsh命令已经可以全局使用

测试codex是否成功使用powershell 7
打开codex运行,让其运行PSVersionTable.PSVersion.ToString(),如果返回的是7.x,说明已经配置成功

之后再让codex改代码,就不会再重新乱码问题了!
扩展内容:彻底解决 Codex / Copilot 修改中文乱码【含自动化解决方案】
彻底解决 Codex / Copilot 修改中文乱码【含自动化解决方案】
引言
在使用 GitHub Copilot 或 OpenAI Codex 自动重构代码时,你是否遇到过这样的尴尬:AI 生成的代码逻辑完美,但原本注释里的中文却变成了 æˆ‘çˆ±ä¸æ–‡ 这样的乱码?有时候这种字符甚至会污染正确的代码,带来巨大的稳定性隐患。
一、 问题核心:被忽视的“终端中转”
乱码的根源不在于 AI 的大脑,也不在于编辑器 的显示,而在于执行链路的编码不一致。
Copilot/Codex 在执行某些修改任务(如:重构整个文件或批量替换)时,往往会通过终端调用系统指令。由于 Windows 终端(PowerShell/CMD)默认使用 GBK 编码,它在处理 AI 传来的 UTF-8 字节时会发生“误读”,导致写入文件的内容从源头上就损坏了。
二、 解决方案:构建全链路 UTF-8 环境
本文给出一套全自动的解决方案。首先,先新建一个.txt 文件,然后将下方的代码复制进新建的.txt 文件中。接着,将.txt 文件保存并更名为 fix_all_encoding.bat,右键点击并以管理员身份运行即可:
@echo off
setlocal enabledelayedexpansion
title AI 编程环境编码一键优化工具
:: 1. 权限验证
net session >nul 2>&1
if %errorLevel% neq 0 (
echo [错误] 请右键点击此文件,选择“以管理员身份运行”!
pause
exit /b
)
echo [*] 正在初始化环境...
:: 2. 设置系统级环境变量
echo [*] 配置系统环境变量 (UTF-8)...
setx /m PYTHONUTF8 "1" >nul
setx /m LESSCHARSET "utf-8" >nul
:: 3. 配置 PowerShell Profile
echo [*] 配置 PowerShell 启动策略...
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$p = Split-Path $PROFILE; if (!(Test-Path $p)) { New-Item -ItemType Directory -Path $p -Force }; ^
$content = '$OutputEncoding = [Console]::InputEncoding = [Console]::OutputEncoding = [System.Text.Encoding]::UTF8; [System.Console]::InputEncoding = [System.Text.Encoding]::UTF8; [System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8'; ^
if (Test-Path $PROFILE) { $old = Get-Content $PROFILE; if ($old -notcontains '$OutputEncoding = [Console]::InputEncoding') { Add-Content -Path $PROFILE -Value $content } } else { Set-Content -Path $PROFILE -Value $content -Encoding UTF8 }"
:: 4. 智能合并 VS Code 设置
echo [*] 同步 VS Code 全局设置...
set "VSC_SETTINGS=%APPDATA%\Code\User\settings.json"
if exist "%VSC_SETTINGS%" (
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$path = '%VSC_SETTINGS%'; ^
$json = Get-Content $path -Raw | ConvertFrom-Json; ^
$json | Add-Member -NotePropertyName 'files.encoding' -NotePropertyValue 'utf8' -Force; ^
$json | Add-Member -NotePropertyName 'files.autoGuessEncoding' -NotePropertyValue $true -Force; ^
$json | ConvertTo-Json -Depth 100 | Set-Content $path -Encoding UTF8"
echo [+] VS Code 设置已同步。
)
echo.
echo ---------------------------------------------------
echo [+] 配置成功!
echo [提示] 请重启 VS Code 终端或重启编辑器以使配置生效。
echo ---------------------------------------------------
pause到此这篇关于codex 改文件中文乱码的解决方法的文章就介绍到这了,更多相关codex 改文件中文乱码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
