DeepSeek Harness (DSH) 在 Windows 环境下运行时,经常遇到命令行输出乱码的问题。传统的内置 bash/pwsh 工具会将 GBK 或 UTF-16LE 字节流强制按 UTF-8 解码,导致中文显示为乱码。dsh-encoding 插件通过提供独立的命令运行和乱码解码工具,解决了这一痛点。
这是什么¶
这是一个由 Lostforest7 维护的客户端插件,定位为 DSH 的编码纠错命令运行器和乱码恢复工具。它是一个零依赖、纯 ESM JavaScript 插件,无需构建步骤即可运行。
核心功能¶
插件提供两个主要工具:
encoding_run:启动子进程捕获标准输出和标准错误的原始字节,自动检测 UTF-8、UTF-16LE 或 GBK 编码并正确解码。encoding_decode:恢复已经乱码的文本。例如,当 GBK 字节被误读为 Latin1 时,它可以将乱码还原为正确的中文。
安装与启用¶
在终端中执行以下命令安装插件:
dsh plugin --profile <name> add dsh-encoding
安装完成后,插件配置层会出现在 DSH 的配置输出中。
典型用法¶
1. 使用 encoding_run 执行命令¶
该工具用于执行命令并正确处理输出编码。如果输出包含 U+FFFD(�),系统会追加警告行。
encoding_run with command: "chcp 936 >nul & echo 中文"
输出示例:
中文
[encoding: gbk (auto-detected)]
[exit code: 0]
参数说明:
* command:要执行的命令行。
* encoding:指定编码模式(auto 为自动检测,或强制指定 utf-8 / utf-16le / gbk)。
2. 使用 encoding_decode 恢复乱码¶
该工具用于修复已存在的乱码文本。
encoding_decode with text: "ÖÐÎÄ"
参数说明:
* text:待恢复的乱码文本。
* from:乱码的原始编码(默认 auto,支持 latin1 / utf-16le)。注意:不支持 from=gbk。
* to:目标解码编码(默认 auto,支持 gbk / utf-16le)。
适用场景与注意¶
- 适用场景:在 Windows 上使用旧版 CLI 工具、Git Bash/MSYS2 或 PowerShell 5.1,且这些工具输出 GBK 编码文本时。
- 依赖关系:插件不替换或修复内置的 bash/pwsh 工具,仅作为补充方案。
- 权限限制:
encoding_run没有沙箱、批准或后台任务集成,以与 Harness 进程相同的权限运行。 - 检测限制:编码检测基于启发式算法。在编码歧义(如无 BOM 的纯中文 UTF-16LE 与 GBK)时,建议强制指定
encoding参数。 - 数据限制:输出流限制为 8 MiB。
结语¶
dsh-encoding 解决了 DSH 在 Windows 环境下处理特定编码输出时的乱码问题,提供了 encoding_run 和 encoding_decode 两个实用工具。对于需要处理 GBK 或 UTF-16LE 输出的场景,这是一个轻量级的补充方案。
- 插件目录:dsh-encoding - SkillHub
- 源码地址:dsh-encoding - GitHub