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