dsh-fs-encoding:DeepSeek Harness 文件編碼守護

前言

DeepSeek Harness (DSH) 的原生文件工具(read / write / edit)只認 UTF-8。在處理中文 GBK、日文 Shift-JIS、韓文 EUC-KR,或帶 BOM 的文件時,AI 往往直接報錯無法讀取,或者在修改後導致文件編碼損壞、BOM 被丟失。本插件接管這些工具,在保留原有沙箱圍欄、讀後寫保護等機制的前提下,按原編碼讀寫文件,解決 AI 讀寫多字節編碼文件時的靜默損壞問題。

這是什麼

這是 mrweicodes/dsh-fs-encoding,由 MrWeiCodes 維護的 DSH 插件,屬於模型推理工具類。

它的核心價值是:讓 AI 讀寫 GBK 等非 UTF-8 文件和帶 BOM 的文件時不會弄壞編碼。插件通過字節級保真、BOM 保真和換行符保真,確保文件在讀寫過程中保持原有的編碼特徵。

核心功能

  1. 字節級保真:按原編碼讀寫文件,不轉 UTF-8。
  2. BOM 保真:精確還原或絕不添加 BOM。
  3. 換行符保真:CRLF / LF / CR 識別與還原。
  4. 絕不靜默損壞:無法表示的字符拒絕寫入。
  5. 智能識別:讀不了時會列出候選編碼供選擇,而不是直接報錯。
  6. 廣泛支持:支持 GBK、Big5、Shift-JIS、EUC-KR、Windows-125x 等 19 種編碼。
  7. 零學習成本:直接替換原生 read / write / edit 工具,參數和返回格式與原版一致。
  8. 指定編碼新建:write 支持 encoding 參數,用於新建指定編碼的文件。
  9. 額外工具:提供 insert、undo_last_edit 和 str_replace_editor 三個工具。

安裝與啓用

使用官方提供的安裝命令即可完成啓用:

dsh plugin --profile web add dsh-fs-encoding

安裝完成後,插件會自動覆蓋原生工具,無需額外配置。

典型用法

插件接管了原生工具,調用方式與原版基本一致,主要區別在於顯式指定編碼。

讀取非 UTF-8 文件

對於 GBK 等非 UTF-8 文件,需要顯式傳入 encoding 參數:

read({ file_path: "legacy.txt", encoding: "gbk" })

寫入指定編碼的文件

新建文件時,使用 encoding 參數指定編碼(如 GBK):

write({ file_path: "run.bat", content: "echo 中文\r\n", encoding: "gbk" })

新增工具

插件額外提供了三個工具:

  1. insert:按行號插入字符串(原生不支持)。
    insert({ file_path: "config.ini", insert_line: 0, new_string: "[core]" })
  1. undo_last_edit:撤銷上一次編輯,內容與編碼一併還原。
    undo_last_edit({ file_path: "config.ini" })
  1. str_replace_editor:兼容層工具,支持 view、create、str_replace、insert、undo_edit 等子命令。

注意事項

  1. 工具衝突:與在同一層註冊同名工具的插件互斥(如 read / write / edit / insert / str_replace_editor / undo_last_edit)。
  2. encoding 參數限制:encoding 只對新建文件有效。文件已存在時,直接傳入 encoding 會報錯,插件不會轉換已有文件的編碼。
  3. Windows 跨盤符問題:在 Windows 上,若插件目錄與 profile 不在同一盤符,安裝會失敗。
  4. 撤銷限制:undo_last_edit 只保留最近一次編輯,不寫磁盤,DSH 重啓後無法撤銷。
  5. 許可證:MIT License。

總結

dsh-fs-encoding 通過精確控制文件讀寫過程,解決了 DSH 在處理多字節編碼文件時的痛點。它適合需要維護遺留系統、處理國際化文件或保證代碼庫編碼一致性的場景。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜