你这个问题本质不是 OpenClaw 的问题,而是 PowerShell 默认编码的问题。
Windows PowerShell 默认是 GBK / CP936,而 OpenClaw 输出是 UTF-8,所以中文就会变成乱码。

直接说解决方案,按稳定程度排序。


方案一(最直接):切换 PowerShell 到 UTF-8

在 PowerShell 里执行:

chcp 65001

然后再运行:

openclaw models list

很多时候乱码就没了。

但这个方法 只对当前窗口有效


方案二(真正解决):修改 PowerShell 输出编码

执行:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

再运行 OpenClaw。

如果你不想每次输入,可以写进 profile:

打开:

notepad $PROFILE

加入:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

以后 PowerShell 默认就是 UTF-8。


方案三(最稳定):Windows Terminal

如果你在用 Windows Terminal,基本不会乱码。

建议:

Terminal
  → PowerShell
      → openclaw

因为 Windows Terminal 默认 UTF-8。


方案四(很多人不知道):Node.js 输出编码

OpenClaw是 Node 程序,有时候 Node 会继承系统编码。
可以强制:

setx NODE_OPTIONS "--enable-source-maps"
setx LANG "en_US.UTF-8"

然后重开终端。


如果你还出现这种情况

�������

或者

???????

说明 终端字体不支持中文

解决:

PowerShell → 设置字体:

推荐:

  • Cascadia Code
  • Microsoft YaHei Mono
  • Sarasa Mono

最省事的一套组合(基本不会乱码)

Windows Terminal
    ↓
PowerShell
    ↓
chcp 65001
    ↓
openclaw

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐