AutoGLM 中文文档 下载 App

Windows 上 UnicodeEncodeError (gbk code) 编码异常解决

现象

在 Windows 上运行 AutoGLM(或任何涉及中文输出的 Python 脚本)时,终端报类似错误:

UnicodeEncodeError: 'gbk' codec can't encode character '\u4f60' in position X

或者更短的:

'gbk' codec can't encode character

原因

Windows 的命令行(cmd 和 PowerShell)默认使用 GBK 编码,而 Python 3 默认在标准输出用 UTF-8 编码。当脚本输出的中文字符无法映射到 GBK 编码时就报错了。

AutoGLM 框架在 verbose 模式下会输出大量中文(思考链、执行动作 JSON 里可能包含中文 App 名),所以这个问题在 AutoGLM 上特别常见。

解决办法

一行环境变量,把 Python 的 IO 编码强制设为 UTF-8:

PowerShell(推荐):

$env:PYTHONIOENCODING = "utf-8"
python main.py --verbose --base-url $MODEL_URL "打开美团"

cmd(命令提示符):

set PYTHONIOENCODING=utf-8
python main.py --verbose --base-url $MODEL_URL "打开美团"

永久生效:

额外建议

PowerShell 里还可以顺便切换到 UTF-8 代码页:

chcp 65001

让 PowerShell 自身也用 UTF-8 显示中文输出,避免乱码。

完整推荐写法(PowerShell)

$env:PYTHONIOENCODING = "utf-8"
chcp 65001
python main.py --verbose --base-url $MODEL_URL "打开美团搜索附近的火锅店"

相关阅读