Gemini CLI PR 修复:UTF-16/32 空白文件被误判非空
jesussamuel-byte · ghdev · 2026-10-13
google-gemini/gemini-cli 的一个 PR(#29722)修复了文件空判定的编码 bug:原先 isEmpty() 总是按 UTF-8 解码采样字节,而 UTF-16/UTF-32 里空白字符是 2 或 4 字节宽,按 UTF-8 解码后会留下 trim() 无法去除的 NUL 字符,导致只含空白的 UTF-16/32 文件(带 BOM)被误判为非空,validatePlanContent() 也会错误接受这种空白计划文件。
修复方式是新增 decodeBOMContent 辅助函数,按 BOM 检测到的编码(UTF-8、UTF-16 LE/BE、UTF-32 LE/BE)正确解码,并让 readFileWithEncoding() 复用同一逻辑避免两处行为漂移。decodeUTF16BE 也改为忽略不完整的尾部码元而非抛错,以免含文本的文件被兜底误判为空。行为不变的部分:仅采样前 1 KB、无 BOM 文件仍按 UTF-8 解码。附带了覆盖各编码的测试。
「编程与Agent」频道最新
- PHP 爆两个未认证 RCE 漏洞,ProjectDiscovery 推全网免费告警服务 — cyb3rops · 2026-10-23
- Modal 开源 Spindle:Tinker 兼容自托管训练服务器,按 GPU 计费替代按 token 计费 — josh_wills · 2026-10-23
- 用 Cosmos DB Agent Kit 复查 Claude 写的 Azure 应用,实测能省多少 RU — adnan_hashmi · 2026-10-23
- 开发者弃用聊天线程,改用可视化面板管理多个 AI Agent — Salmaaboukarr · 2026-10-23
- Warp 用计算机操作工具解决编码 Agent 验证瓶颈,合并周期大幅缩短 — vikvang1 · 2026-10-23
- 模型会执行不会定目标:agent 瓶颈正转向目标设定 — alishbaimran_ · 2026-10-23