Files
claude-code/spec/feature_20260510_F001_multi-encoding-file-tools/spec-plan.md
claude-code-best 0ce8f7a1cb feat: 添加 GBK 编码自动检测支持,文件读写工具透明处理非 UTF-8 文件
新增 encoding.ts 核心模块实现三层编码检测(BOM → UTF-8 fatal → GBK 回退),
改造同步/异步读取路径和写入路径,使 FileReadTool/FileEditTool/FileWriteTool
能正确处理 GBK 编码文件。包含完整单元测试和 spec 文档。

Co-Authored-By: glm-5-turbo <zai-org@claude-code-best.win>
2026-05-10 20:50:12 +08:00

50 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 多编码文件工具 执行计划
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**目标:** 为文件读写工具添加自动编码检测,支持 GBK 编码的透明读写latin1 作为最终兜底)。
**技术栈:** TextDecoder/TextEncoder零外部依赖、Bun test 框架、TypeScript strict mode
**设计文档:** spec/feature_20260510_F001_multi-encoding-file-tools/spec-design.md
**范围变更:** 仅保留 GBK 编码支持Shift_JIS/EUC-JP/EUC-KR/Big5/GB18030/ISO-8859-1 已移除。
## 改动总览
新建编码检测核心模块 `src/utils/encoding.ts`提供三层检测BOM → UTF-8 fatal 验证 → GBK 回退 → latin1 兜底和解码工具函数。同步读取路径fileRead.ts → file.ts → fileReadCache.ts集成新检测逻辑异步读取路径readFileInRange.ts改造为 Buffer 读取 + 检测后解码。写入路径writeTextContent扩展类型支持新编码名非标准编码回退为 UTF-8 写入。FileEditTool 和 FileWriteTool 仅需类型适配。
---
## 任务索引
### Task 0: 环境准备
📄 详情见: `spec-plan-task-0.md`
验证构建工具链和测试环境是否就绪,确认 Bun 运行时对 GBK 编码的 TextDecoder 支持。
### Task 1: 编码检测核心模块
📄 详情见: `spec-plan-task-1.md`
新建 `src/utils/encoding.ts`实现三层编码检测算法BOM → UTF-8 fatal 验证 → GBK 回退)和 Buffer 解码/编码函数。
### Task 2: 同步读取路径集成
📄 详情见: `spec-plan-task-2.md`
改造 `fileRead.ts``file.ts` 的编码检测,集成新模块,更新类型定义。
### Task 3: 异步读取路径改造
📄 详情见: `spec-plan-task-3.md`
改造 `readFileInRange.ts` 的 fast path 和 streaming path支持非 UTF-8 编码。
### Task 4: 写入路径和工具层适配
📄 详情见: `spec-plan-task-4.md`
扩展写入路径类型,更新 FileEditTool/FileWriteTool 的类型注解。
### Acceptance Task
📄 详情见: `spec-plan-acceptance.md`
端到端验证所有功能是否正确实现。