CodeX的乱码问题

Windows 下从 PowerShell 5.1 切换到 PowerShell 7(pwsh),彻底解决 UTF-8 中文乱码问题.

最近再使用codex的时候发现了乱码问题老师解决不了,交互的时候有很大问题,一,好像乱码会影响codex的思考,二乱码,我看不懂分析过程了。

所以痛下决心,一定要改好,下面是教程。

一、问题背景

在 Windows 下使用 PowerShell + Node / Python / 前端开发 时,经常会遇到下面这些问题:

Get-Content 读取 JS / Python 文件时中文注释乱码

明明设置了 UTF-8,输出却变成 纭繚、鏂囦欢

PowerShell 配置了一堆编码参数,效果仍然不稳定

一开始以为是自己配置有问题,后来才发现:

根本原因是 Windows 自带的 PowerShell 版本太老(5.1)

二、问题根因:Windows 自带的是 PowerShell 5.1

先看一下当前 PowerShell 版本:

$PSVersionTable.PSVersion

如果输出类似:

Major Minor

5 1

说明你用的是 Windows PowerShell 5.1(系统自带)。

⚠️ 重点

PowerShell 5.1 无法升级到 7

PowerShell 7(pwsh)只能 单独安装,与 5.1 并存

三、安装 PowerShell 7(pwsh)

方法一:使用 winget(推荐)

在 PowerShell 5.1 中执行:

复制代码
winget install --id Microsoft.PowerShell -e

安装完成后,关闭所有终端窗口并重新打开。

验证是否安装成功

复制代码
pwsh -v

如果输出类似:

复制代码
PowerShell 7.x.x

说明 PowerShell 7 已安装成功。

四、常见坑:pwsh 能运行,但系统找不到

有时会出现这种情况:

复制代码
where pwsh

没有任何输出

复制代码
pwsh

却能正常进入 PowerShell 7

说明:

pwsh 已安装

但 没有被 Windows Terminal / VS Code 自动识别

解决方法是:手动指定 pwsh.exe 的路径。

五、Windows Terminal 设置默认使用 PowerShell 7

1️⃣ 获取 pwsh.exe 的真实路径

复制代码
(Get-Command pwsh).Source

一般结果是:

复制代码
C:\Program Files\PowerShell\7\pwsh.exe

2️⃣ 在 Windows Terminal 中手动添加 Profile

打开 Windows Terminal

按 Ctrl + , 打开设置

左侧选择 Profiles → Add a new profile → Empty profile

填写以下内容:

Name:PowerShell 7

Command line:

复制代码
C:\Program Files\PowerShell\7\pwsh.exe

Starting directory(可选):

%USERPROFILE%

点击 Save

3️⃣ 设置为默认 Profile

回到设置首页

Default profile 选择 PowerShell 7

保存并重启 Windows Terminal

验证

复制代码
$PSVersionTable.PSVersion

如果看到 7.x,说明切换成功。

六、VS Code 中设置默认终端为 PowerShell 7

方法一:图形界面

打开 VS Code

复制代码
Ctrl + ,

搜索 terminal default profile

在 Windows 下选择 PowerShell / PowerShell 7

方法二:手动编辑 settings.json(最稳定)

复制代码
"terminal.integrated.profiles.windows": {
  "PowerShell 7": {
    "path": "C:\\Program Files\\PowerShell\\7\\pwsh.exe"
  }
},
"terminal.integrated.defaultProfile.windows": "PowerShell 7"

保存后重启 VS Code。

七、为什么 PowerShell 7 能彻底解决 UTF-8 乱码

对比总结:

项目 PowerShell 5.1 PowerShell 7

默认编码 ANSI / GBK UTF-8

Get-Content 容易乱码 正常

Node / Python 行为不一致 一致

开发体验 很差 很好

PowerShell 7 基于 .NET Core,对 UTF-8 的支持是现代化的,

大多数情况下 无需再手动设置编码参数。

八、总结

Windows 下做开发,强烈建议直接使用 PowerShell 7(pwsh),

不要再和 PowerShell 5.1 的编码问题硬刚。

切换完成后:

中文注释不再乱码

终端行为和 Linux / macOS 更一致

Node / Python / Git 使用体验明显提升

早点换 pwsh,早点解脱。

相关推荐
java资料站29 分钟前
二、Spring AI Alibaba · ChatModel
java·windows·spring
北冥you鱼1 小时前
Go 语言空接口(interface{})使用场景与最佳实践
开发语言·windows·golang
夏虫不可与之言冰4 小时前
Windows WSL2 (Ubuntu) 搭建 ESP‑IDF 6.1 开发环境全过程演示
linux·windows·ubuntu·esp32·乐鑫科技·乐鑫eim·乐鑫代理商
打工仔折腾 AI7 小时前
FaceFusion本地换脸实战:Windows整合包、模型选择与遮罩调参记录
人工智能·windows·后端·python·深度学习·性能优化·ai agent 实战
小蜗牛狂飙记9 小时前
Windows 双击 Jar 包无反应,不用写 bat 脚本!Jarfix 一键修复(以 Struts2 扫描工具为例)
windows·struts·jar
坐看风云变幻9 小时前
Betaflight 开发环境搭建保姆级教程(Ubuntu / Windows+WSL / Docker 三方案 + 官方网址大全)
windows·ubuntu·docker·无人机·飞控·betaflight
IT技术分享社区10 小时前
在 Windows 上跑未改动的 Linux 程序:微软 LiteBox v0.1 把这件事变简单了
linux·运维·windows·microsoft·开源
kakakahahahaha10 小时前
Win10/Win11 Windows Hello指纹不可用处理:WbioSrvc、传感器驱动与登录策略
windows·电脑·笔记本电脑·内容运营·软件需求
小黄人软件11 小时前
粘贴助手C++版 支持 Windows 7 / 10 / 11 不会出现缺少api-ms-win-core-path-11-1-0.dll
开发语言·c++·windows
Vex2une20 小时前
Windows 性能监视器发展史:从 PerfMon 计数器到 XPerf 深度诊断
windows·wpa·etw·性能监视器·perfmon·性能计数器·xperf