Featured image of post Windows 使用 Claude CLI、Codex CLI 等 AI 终端工具中文乱码?一招彻底根治!

Windows 使用 Claude CLI、Codex CLI 等 AI 终端工具中文乱码?一招彻底根治!

下一个终端会更好!

前言

旨在解决在 Windows 环境下使用 CLI 工具时,控制台中文输出乱码问题。

解决方案:使用 PowerShell 7(pwsh)+ 明确 UTF-8 输出, 让 Windows CLI 行为对齐 Linux / macOS 的默认假设。

扩展:另附 IDEA、VSCode 自带终端的配置方法,默认打开 pwsh

参考了大佬的这篇文章,踩了点坑,感兴趣的可以去看看原文:[Windows 下 Codex 中文乱码问题解决方案](Windows 下 Codex 中文乱码问题解决方案-腾讯云开发者社区-腾讯云)

原因

Claude CLI、Codex CLI 等现代 AI 工具,底层基于 Node.js 或 .NET Core,它们输入输出默认强制使用 UTF-8 编码。而 Windows 传统终端(CMD、PowerShell 5.1)默认使用本地语言编码(中文系统为 GBK/936 代码页)。

导致链路如下: Codex(UTF-8) → Windows Console(GBK / 936) → VS Code 终端 → 中文乱码

解决方案

Step 1:安装 PowerShell 7

这里使用 MSI 进行安装,原因是 MSI 安装包会将 pwsh.exe 放置在 C:\Program Files\PowerShell\7\ 下,这是普通应用程序的标准目录,不受 WindowsApps 沙盒权限限制,IDEA、PyCharm 等所有 IDE 都能无障碍调用。

这里被 IDEA 阴了一手,遂改成 MSI 安装

操作:

  1. 访问官方 GitHub Releases:
    https://github.com/PowerShell/PowerShell/releases
  2. 下载对应架构的 .msi 文件(64位系统选 PowerShell-7.x.x-win-x64.msi)。
  3. 安装时,务必勾选以下两项
    • Add to PATH environment variable(加入环境变量,方便随处调用)
    • Register Windows Event Logging Manifest

安装完成后,打开任意终端,输入 pwsh --version,若能正常显示版本号,说明安装成功。

Step 2:进入 pwsh

① 进入pwsh终端

打开你的终端(CMD 或旧版 PowerShell),输入 pwsh 进入 PowerShell 7 环境。

或打开任意文件夹,在红框位置输入pwsh并回车,同样可以进入

② 验证

1
$PSVersionTable.PSEdition

必须输出:

1
Core

Step 3:配置UTF-8 编码

① 创建 PowerShell 配置文件(Profile)
若提示文件已存在可跳过此步:

1
New-Item -ItemType File -Path $PROFILE -Force

② 编辑配置文件

1
notepad $PROFILE

③ 在打开的记事本中,粘贴以下三行代码(强制 UTF-8)

1
2
3
[Console]::InputEncoding = [System.Text.UTF8Encoding]::new()
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
$OutputEncoding = [System.Text.UTF8Encoding]::new()

保存并关闭记事本。

④ 验证配置是否生效
重启 pwsh 终端,执行:

1
[Console]::OutputEncoding.CodePage

必须输出 65001

VSCode如何正确使用pwsh

  1. 打开VSCode

  2. 按下 Ctrl + ,,输入 Select Default Profile

  3. 选择 PowerShell(确保指向的是 7.x 版本,而非 5.1)

  4. 新开终端,验证

    1
    2
    3
    
    $PSVersionTable.PSEdition
    # 输出应为:
    Core
    

IDEA如何正确使用pwsh

JetBrain系列都大同小异,这里介绍一下IDEA的用法

  1. 打开 IDEA

  2. 打开File → Settings → Tools → Terminal

  3. Shell path,点击右边三个点,选择你自己 pwsh.exe 的实际路径

如果忘了,打开任意终端,执行 where pwsh 即可

本博客已稳定运行
发表了8篇文章 · 总计50.28k字
Powered by Cloudflare Pages
使用 Hugo 构建
主题 StackJimmy 设计